我想要把一个 Canvas 有一个图像在我的窗口,然后我想到 pack 部件在它的上面,所以画布上作为背景。

是否有可能有两个国家对的 pack 管理:一为一个组件,另一个用于另一组?

有帮助吗?

解决方案

您的具体问题的答案是否定的。您不能在同一父级中使用两种状态或以其他两种方式使用包。

然而,我认为你想要完成的事情很简单。使用画布的内置功能创建一个作为画布一部分的图像项,然后将内容打包到画布中,就好像它是一个框架一样。

您可以通过创建带有图像的标签窗口小部件来完成类似的操作,然后将其他窗口小部件打包到标签中。

使用画布的一个优点是,您可以轻松地平铺图像以使用重复的背景图像填充整个画布,以便窗口增长时图像将继续填充窗口(当然,您可以使用足够大的原始图像图像...)

其他提示

我相信布莱恩的回答可能是最好的通用解决方案。但是,您可能还需要查看地点几何管理器。 地点几何管理器允许您指定窗口小部件的确切大小和位置...这可能会很快变得乏味,但会完成工作。

  

...原来是不可行的,因为我想为它添加标签和更多画布,但我找不到任何方法让它们的背景透明

如果可以加载其他扩展程序,请查看 Tkzinc 。来自网站,

  

Tkzinc(历史上称为Zinc)小部件与Tk Canvas非常相似,因为它们都支持结构化图形。与Canvas一样,Tkzinc实现用于显示图形实体的项目。可以操纵这些项目,并且可以将绑定与它们相关联以实现交互行为。但与Canvas不同,Tkzinc可以构建层次结构中的项目,支持缩放和旋转,可以为项目层次结构的子树设置剪裁,支持多轮廓曲线。它还在OpenGL的帮助下提供高级渲染,例如颜色渐变,抗锯齿,透明度和三角形项目。

我目前正在tcl项目中使用它,我对结果非常满意。可以使用tcl,perl和python的扩展名。

不是没有交换的部件的树木和出,我不认为可以做得干净用传统知识。其他工具包可以做到这一点更加优雅。

  • COM/VB/MFC可以这样做一件控制-你可以隐藏或展示多件控制在同一地区。任何容器会让你这样做,通过改变儿童的周围。如果你正在做一个特定程序的你可能能够完成它的这种方式。
  • 脱也会让你这样做在一个类似的方式。
  • GTK是稍微难。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top