規格:
Python2.7.1
的Tkinter(Tk的版本8.5)
Windows7的
IDLE 2.7.1Checkbuttons與多個Tkinter的視窗
我編碼一個程序, '產卵' 兩個窗口,退出兩者都銷燬一個,然後去除其他的(然後進入主循環)。
這種安排干擾了剩餘窗口上的Checkbutton。
如:
temp = Tk()
temp.withdraw()
root = Tk()
root.withdraw()
temp.destroy()
root.mainloop()
(這似乎是不尋常的,但它設置了這種方式,使「臨時」窗口會顯示出現的問題,根窗口的建設過程中)。
然而, 似乎只要一個程序處理兩個Tkinter窗口,一個Checkbutton(在根中)的功能就會退出窗口。
def ClickAButton():
print Toggle.get()
Toggle = IntVar()
Checkbutton(root, text = "Me is broke", variable = Toggle).pack()
ClickAButton
Toggle.get()應該返回1,如果Checkbutton被勾選,否則爲0。
然而,由於添加新的窗口,Toggle.get總是返回0
(我已經試過重新格式化代碼{這帶來了它自己的怪誤差修改},
重命名變量等
的Checkbutton沒有工作得很好‘臨時’窗口。
的‘臨時’窗口前銷燬Checkbutton是e VEN分配,包裝,
或 '根',甚至進入主循環)
整個例如:
temp = Tk()
temp.withdraw()
root = Tk()
root.withdraw()
if 'certain condition':
root.destroy()
temp.deiconify()
temp.mainloop()
else:
temp.destroy()
Toggle = IntVar()
Checkbutton(root, text = "Why I only return 0?", variable = Toggle).pack()
root.deiconify()
root.mainloop()
出於某種原因,
的Checkbutton總是返回0,檢查時也是如此。
我懷疑這是Tkinter的一個多線程問題。
這裏有什麼我能做的嗎?
(實際編碼很大,我不急於將它切換到另一個GUI模塊) :
非常感謝!
(我纔開始編程今年開始。
請原諒我,如果我做了一些可怕的錯誤noobish!)
我得到的感覺是使用Tkinter的多窗口是'不愉快的'。 但所有其他小工具完美地工作, 它只是一個該死的Checkbutton。 對於它的改變似乎是一個巨大的恥辱。 :( –
呵呵,整合Toplevel其實並沒有太大的變化 謝謝! –