首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在tkinter,python中设置复制的widget的顺序?

我如何在tkinter,python中设置复制的widget的顺序?
EN

Stack Overflow用户
提问于 2021-11-03 22:17:43
回答 1查看 15关注 0票数 0

我使用图像(Image1)作为背景,并使用create_window方法进行输入。并且我想用create_image方法使图像(Image2)覆盖条目。( Entry - image2- imgae1)我怎样才能像image2 - Entry - image1那样改变它们的顺序呢?我的代码如下所示。

代码语言:javascript
复制
        self.img_main = PhotoImage(file=r"C:\Bart\My library\Python\Grinding\GUI\capture\image1.png")
        self.canvas_main = Canvas(self, width=1366, height=768, bd=0)
        self.canvas_main.pack(fill=BOTH, expand=True)
        self.canvas_main.create_image(0,0, image=self.img_main, anchor=NW)

        self.entry = Entry(self, width=12, justify="center", bg="#A5C1DE")
        self.canvas_main.create_window(72, 287, height=32, anchor=NW, window=self.entry)

        self.cbb_pro_sel_img_1 = PhotoImage(file=r"C:\Bart\My library\Python\Grinding\GUI\capture\image2.png")
        self.cbb_pro_sel = self.canvas_main.create_image(36, 75, anchor=NW, image=self.cbb_pro_sel_img_1)
EN

回答 1

Stack Overflow用户

发布于 2021-11-03 22:44:55

您不能将图像对象提升到嵌入小工具上方的画布上。从canvas文档中:

画布中的项目是为了显示而排序的,首先显示显示列表中的第一个项目,然后显示列表中的下一个项目,依此类推。显示列表中较晚的项目会遮挡显示列表中较早的项目,并且有时会被称为位于较早项目的“顶部”。当创建一个新项目时,它被放在显示列表的末尾,放在其他所有项目的顶部。窗口小部件命令可用于重新排列显示列表的顺序。窗口项目是上述规则的例外。底层窗口系统要求它们始终绘制在其他项的顶部。

相反,您可以创建一个包含图像的标签,然后使用create_window将该标签放在条目上。因为它是一个小部件,所以它可以出现在entry小部件的上方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69832363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档