我想在窗口中放置一个带有图像的Canvas
,然后将小部件打包在上面,这样画布就可以作为背景。
pack
管理器可以有两种状态:一种是针对一组小部件,另一种是针对另一组?
发布于 2008-09-21 14:19:09
你的具体问题的答案是否定的。您不能在同一个父级中使用两种不同的方式来使用两种状态。
然而,我认为你想要完成的事情很简单。使用画布的内置特性来创建一个作为画布一部分的图像项,然后将其打包到画布中,就好像它是一个框架一样。
您可以通过创建带有图像的label小部件来完成类似的任务,然后将其他小部件打包到标签中。
使用画布的一个优点是,您可以轻松地平铺图像,用重复的背景图像填充整个画布,因此随着窗口的增长,图像将继续填充窗口(当然,您只需使用足够大的原始图像.)
发布于 2008-09-21 14:39:05
我相信布莱恩的答案可能是最好的一般解决方案。但是,您也可能希望查看地点几何管理器。place几何管理器允许您指定小部件的确切大小和位置.这样很快就会变得乏味,但也能完成任务。
发布于 2008-09-22 05:47:28
..。结果证明是行不通的,因为我想给它加上标签和更多的画布,但我找不到任何办法使它们的背景透明。
如果加载额外的扩展是可以接受的,请查看Tkzinc。从网站上,
Tk (历史上称为锌)小部件非常类似于Tk画布,因为它们都支持结构化图形。与画布一样,Tkzinc实现了用于显示图形实体的项。这些项可以被操作,绑定可以与它们相关联以实现交互行为。但与画布不同,Tkzinc可以在层次结构中构造项目,支持缩放和旋转,可以为项目层次结构的子树设置裁剪,支持多轮廓曲线。它还提供了高级渲染与OpenGL的帮助,如颜色梯度,抗混叠,透明和三角形项目。
我目前正在一个tcl项目中使用它,并且对结果非常满意。对tcl、perl和python的扩展是可用的。
https://stackoverflow.com/questions/112263
复制