【发布时间】:2019-05-18 12:51:52
【问题描述】:
我试图让一个按钮在新窗口中显示一个表格,并向该窗口添加一个按钮以销毁自身。主要问题是表格显示在错误的窗口中。 感谢您的帮助。
我尝试自己做,但我尝试的所有方法都不起作用。
import tkinter as tk
class MainWindow(tk.Frame):
counter = 0
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.button = tk.Button(self, text="Create new window",
command=self.create_window)
self.button.grid(padx = 5, pady = 5, row = 1, column = 3)
def create_window(self):
height = 2
width = 3
numberA=0
achievs = ["1", "2", "3", "4", "5", "6"]
self.counter += 1
t = tk.Toplevel(self)
t.wm_title("Window #%s" % self.counter)
for i in range(height): #Rows
for j in range(width): #Columns
t = tk.Label(text=achievs[numberA], relief=tk.RIDGE)
t.grid(row=i, column=j)
numberA = numberA + 1
t.mainloop
if __name__ == "__main__":
root = tk.Tk()
main = MainWindow(root)
main.grid(row=4, column=5, padx=5, pady=25)
root.mainloop()
如前所述,表格应该显示在顶层窗口中,如果可能的话,应该有一个按钮来销毁顶层窗口(我自己可能很难做到这部分)。
【问题讨论】:
-
你使用的是什么版本的 Python 和 tkinter?
-
你没有把它放在顶层。你认为 tkinter 应该如何知道小部件进入顶层?
-
正如@BryanOakley 所说,您没有将它们放在顶层,我认为
gridVal = tk.Label(ttext=achievs[numberA], relief=tk.RIDGE) t.grid(row=i, column=j)应该可以解决它,如果我能理解您的问题,我会尝试提供完整的解决方案。
标签: python-3.x tkinter