我正在使用 Python 和 PIL
简短版:
我想在背景中显示一个图像(据Label
我所知,它只适用于 s ?)每个小部件Label
现在都有这个master
。我还想稍后添加Label
带有绑定功能的小部件(以所说的为主)。
当我单击 时Button
,除了新创建的小部件之外的每个小部件都会消失(下面的简单代码)。
问题:
是否有防止这种情况的命令,或者Label
我可以使用 s 的替代品,或者是否有帖子已经解决了这个问题?
长版:
我正在用 Python 编写 Monopoly。我的设计包括一个从两个小部件共享的框架。使用 aButton
您可以在这些小部件之间切换。为了使设计更舒适且更具视觉吸引力,其中一个小部件 (a Label
) 具有木桌的背景。创建时,所有内容都按原样放置,但是当我按 aButton
将小部件添加到我的二维Frame
Matrix
(在Label
小部件上)时,Label
除了新创建的小部件之外的所有内容都会消失。当再次忘记Label
调用它时,一切都应该(使用新小部件)
由于我已经添加了很多东西Label
,重新加载Label
将不是一个选项,延迟将是显着的。我以前遇到过两次这个问题,但总是设法以某种方式解决它。虽然现在遇到此问题 3 次,但我自己或在 Internet 上都找不到任何解决此问题的方法……相信我,我搜索过(或者用错误的关键字搜索,我不知道。)
如果我的目标尚不明确:我想将小部件添加到一个Label
(或其他支持图像的小部件),只要我想要(事件)而没有其他所有子(小部件)Label
消失。
下面的代码是一个非常简单的代码,向您展示我的问题的示例。我的程序的实际代码有超过 2K 行,而且我的编码不是很容易看的东西,所以我不会包含它。
from tkinter import*
import tkinter as tk
class Oberflaeche:
def __init__(self, main):
self.mainframe = Label(main,height= 1000,width = 1000, bg='azure4' )
self.mainframe.pack()
self.array1 = []
# To resemble it (for me):
for k in range(5):
array2 = []
self.array1.append(array2)
for i in range(11):
array2.append(Frame(self.mainframe, height=120, width=80, bg='red'))
self.array1[k][i].grid(row=k, column=i, pady=(5, 5), padx=(1, 1))
# Just for visual purpose:
for n in range(3):
aLabel = Label(master=self.array1[n][n],bg = 'blue')
aLabel.pack()
aLabel.bind('<Button-1>', self.show)
# Something I want to add:
def show(self,event):
Label1 = Label(self.array1[2][3], bg = 'yellow')
Label1.pack()
main = tk.Tk()
Oberflaeche = Oberflaeche(main)
main.mainloop()