【发布时间】:2021-04-30 02:51:29
【问题描述】:
我在一个名为“customer.py”的文件中有一个带有标签和条目的小型测试 Tkinter 窗口 我用一个超级简单的 tkinter 窗口创建了另一个文件“button_test.py”,只有一个按钮可以调用“customer.py”
按钮调用“customer.py”没有问题,但如果我一遍又一遍地再次单击该按钮。不断弹出同一个窗口。我可能会在那里添加一些条件,但我想知道是否有防止这种情况的更好方法。我发现“Tk TopLevel”也会发生这种情况
感谢您的帮助和时间同志们。
customer.py
from tkinter import *
class OFFLINE():
def __init__(self,window):
self.win = window
self.win.title("Emails")
frame = LabelFrame(self.win, text = 'CUSTOMER INFORMATION')
frame.grid(column = 0, row = 0, )
Label(frame, text = "Case Number").grid(column = 0, row = 1)
self.Case_box = Entry(frame).grid(column = 1, row = 1)
Label(frame, text = "Customer Name").grid(column = 0, row = 2)
self.name_box = Entry(frame).grid(column = 1, row = 2)
Label(frame, text = "Phone number").grid(column = 0, row = 3)
self.phone_box = Entry(frame).grid(column = 1, row = 3)
Label(frame, text = "Email").grid(column = 0, row =4)
self.email_box = Entry(frame).grid(column =1, row = 4)
def main():
root = Tk()
application = OFFLINE(root)
root.mainloop()
if __name__ == '__main__':
main()
button_test.py
import customer
from tkinter import *
offline = customer
window = Tk()
button = Button(window, text = "Click Me", command =offline.main)
button.pack()
window.mainloop()
【问题讨论】:
-
button['state'] = 'disabled'? -
您应该只使用
Tk来创建主窗口——其次您应该使用Toplevel。你应该只使用一个mainloop()。如果你有两个mainloop,那么一些 tkinter 的变量可能工作不正常并且它们可能有错误的值。
标签: python class tkinter toplevel gtkbutton