我希望我的标签在图中显示在的同一列中。它们都是通过点击生成的。我将它们放在网格的同一列中,但图像显示在邻居列中。什么原因以及如何纠正?Python 3 tkinter图像显示在错误的列中
这是我的简化代码。
from tkinter import *
from tkinter import ttk
class App(Frame):
def __init__(self, master):
ttk.Frame.__init__(self, master, padding='20')
self.grid(column=0, row=0, sticky=(N, W, E, S))
self.create_button()
def create_button(self):
self.button = ttk.Button(self,
text="Click",
width=12,
command=lambda: self.display_name_and_picture()
).grid(column=2, columnspan=2, row=1, sticky=NW)
def display_name_and_picture(self):
random_label = ttk.Label(self, font=(None, 16), text='random random')
random_label.grid(row=0, column=5, sticky=N)
random_image = PhotoImage(file='random.gif')
label = Label(image=random_image)
label.image = random_image
label.grid(row=1, column=5, sticky=NW)
root = Tk()
root.title("Random something...")
root.geometry("600x300")
app = App(root)
root.mainloop()
在你的'create_button'方法改变'command'到 '命令= self.display_name_and_picture' – styvane
'自我.button = ttk.Button(...)。grid(...)'将self.Button设置为None。如果你不需要'self.button',就取消分配。如果你这样做,将语句分成'self.button = ttk.Button(...)'和'self.button.grid(...)'。 –
第二个标签缺少'ttk'前缀。 'label.image'属性分配似乎没用。 –