这是我为此问题撰写的一段代码:Entry text on a different window?
在mySubmitButton
发生的事情真的很奇怪,看起来按钮不希望在首次启动时出现,但是当你点击它时会出现。即使你点击它并将其从按钮上取下,这样也不会发送。我怀疑这是否只发生在Mac上,或者只发生在我的电脑上,因为这是一个非常小的问题。或者我用我的代码做了些蠢事。
self.mySubmitButton = tk.Button(top, text='Hello', command=self.send)
self.mySubmitButton.pack()
我错过了什么吗?我用谷歌搜索了question and answer on daniweb。我对他们做了一个差异,无法弄清楚他做了什么“修复”,但我确实看到这条线被改为command=root.quit
。但无论如何它与我的不同......
以下是完整的源代码,并且没有错误消息,但按钮只是缺失。
import tkinter as tk
class MyDialog:
def __init__(self, parent):
top = self.top = tk.Toplevel(parent)
self.myLabel = tk.Label(top, text='Enter your username below')
self.myLabel.pack()
self.myEntryBox = tk.Entry(top)
self.myEntryBox.pack()
self.mySubmitButton = tk.Button(top, text='Hello', command=self.send)
self.mySubmitButton.pack()
def send(self):
global username
username = self.myEntryBox.get()
self.top.destroy()
def onClick():
inputDialog = MyDialog(root)
root.wait_window(inputDialog.top)
print('Username: ', username)
username = 'Empty'
root = tk.Tk()
mainLabel = tk.Label(root, text='Example for pop up input box')
mainLabel.pack()
mainButton = tk.Button(root, text='Click me', command=onClick)
mainButton.pack()
root.mainloop()
PS:我使用的是Mac OS 10.5.8和Tk 8.4.7。
答案 0 :(得分:3)
我看到你好按钮,但我在Windows 7上。
我快速重写了你的例子。如果它对你有任何影响我会很好奇。
import tkinter as tk
class GUI(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
mainLabel = tk.Label(self, text='Example for pop up input box')
mainLabel.pack()
mainButton = tk.Button(self, text='Click me', command=self.on_click)
mainButton.pack()
top = self.top = tk.Toplevel(self)
myLabel = tk.Label(top, text='Enter your username below')
myLabel.pack()
self.myEntryBox = tk.Entry(top)
self.myEntryBox.pack()
mySubmitButton = tk.Button(top, text='Hello', command=self.send)
mySubmitButton.pack()
top.withdraw()
def send(self):
self.username = self.myEntryBox.get()
self.myEntryBox.delete(0, 'end')
self.top.withdraw()
print(self.username)
def on_click(self):
self.top.deiconify()
gui = GUI()
gui.mainloop()