我对将mainloop函数放在python中的位置感到困惑。当我使用这段代码时:
from tkinter import *
import sys
window = Tk()
def mainFunct():
while True:
label = Label(window,text="Hello World")
label2 = Label(window, text = "Hello World2")
menu = input("Please input something")
if menu == "a":
label.pack()
if menu == "b":
label2.pack()
if menu == "c":
sys.exit()
window.mainloop()
mainFunct()
我希望在用户输入a时打包标签,当用户输入b时,我希望打包label2。我不确定何时以及为何使用mainloop。现在当我运行程序时,GUi只在我输入内容后弹出,然后我甚至无法输入任何其他内容,我认为它与window.mainloop()函数有一些关系,因为它只是一遍又一遍地循环,而不是再次运行while循环。
答案 0 :(得分:1)
我能够根据评论更好地理解你的问题。如果您正在寻找,请告诉我们:
import tkinter as tk
class HelloWorld(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="What's your input?", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
answer = self.entry.get()
if answer == "a":
print("Hello World")
elif answer == "b":
print("Hello World 2")
elif answer == "c":
root.destroy()
root = HelloWorld()
root.mainloop()
因此,在处理用户的输入时,最好创建一个类,然后从中获取/比较信息。
现在,如果答案不是a
,b
或c
,则该程序将不会有任何回复,因此请进行相应调整。