我想在我的窗口中放置一个带有图像的Canvas
,然后我想在其上面打包小部件,因此Canvas充当背景。
pack
经理可以有两种状态:一组用于一组小部件而另一组用于另一组小部件?
答案 0 :(得分:2)
您的具体问题的答案是否定的。您不能在同一父级中使用两种状态或以其他两种方式使用包。
然而,我认为你想要完成的事情很简单。使用画布的内置功能创建一个作为画布一部分的图像项,然后将内容打包到画布中,就好像它是一个框架一样。
您可以通过创建带有图像的标签窗口小部件来完成类似的操作,然后将其他窗口小部件打包到标签中。
使用画布的一个优点是,您可以轻松地平铺图像以使用重复的背景图像填充整个画布,以便窗口增长时图像将继续填充窗口(当然,您可以使用足够大的原始图像图像...)
答案 1 :(得分:1)
我相信布莱恩的答案可能是最好的通用解决方案。但是,您可能还需要查看place几何管理器。 地点几何管理器允许您指定窗口小部件的确切大小和位置...这可能会很快变得乏味,但会完成工作。
答案 2 :(得分:1)
...原来是不可行的,因为我想为它添加标签和更多画布,但我找不到任何方法让它们的背景透明
如果可以加载其他扩展程序,请查看Tkzinc。来自网站,
Tkzinc(历史上称为Zinc)小部件与Tk Canvas非常相似,因为它们都支持结构化图形。与Canvas一样,Tkzinc实现用于显示图形实体的项目。可以操纵这些项目,并且可以将绑定与它们相关联以实现交互行为。但与Canvas不同,Tkzinc可以构建层次结构中的项目,支持缩放和旋转,可以为项目层次结构的子树设置剪裁,支持多轮廓曲线。它还在OpenGL的帮助下提供高级渲染,例如颜色渐变,抗锯齿,透明度和三角形项目。
我目前正在tcl项目中使用它,我对结果非常满意。可以使用tcl,perl和python的扩展名。
答案 3 :(得分:0)
不是没有交换小部件树进出,我认为不能用Tk干净地完成。其他工具包可以更优雅地做到这一点。