至於有人新的Tkinter的Python 3,我有一對夫婦的導航如何生成GUI(在Python腳本的上下文中)的小問題,儘管閱讀文檔和堆棧溢出答案。我的目標是創建一個幀7所單選按鈕選擇的每一個對應於選擇時的屏幕分辨率大小和提交按鈕被按下時,選擇的無線按鈕,將其值傳遞到一個變量。但是,當我實現我的GUI時,我遇到了兩個問題。問題與Tkinter的根窗口和單選按鈕GUI生成
首先是我的框架上,單選按鈕正常打開,但出現另一個框架,這是空白,標題爲「TK」。無論我做什麼(即使用root.withdraw()
等,如其他人所提到的),這個空白窗口仍然出現。
我遇到的第二和更令人費解的問題是,當產生的,但所有的第一個單選按鈕被選擇時,通常不與在中心的點,但以連字符。現在,用戶可以按他/她想要的選項,除了選擇之外,它將全部取消選擇,但它看起來不正常,並且可能會混淆用戶。我讀了關於設置tristate變量爲none但沒有工作(或者至少在我的試驗中)。我還嘗試在所有單選按鈕生成之前強制執行一個deselect()
函數,並且這兩個函數都不起作用。另外,請記住,單選按鈕的變量必須處理一個字符串,而不是一個int。這裏發生了什麼,我該如何解決它?
的代碼片斷,涉及到這兩個看似相關的問題如下:
if urldata == None:
class ResolutionInputGUI:
def __init__(self, master):
self.master = master
master.title("My GUI")
self.label = tk.Label(master, text="Your Screen Resolution Is: " + screenres + "\n")
self.label.pack()
MODES = [
("500×500", "500×500"),
("1280×800", "1280×800"),
("1280×1024", "1280×1024"),
("1440×900", "1440×900"),
("1680×1050", "1680×1050"),
("1920×1080", "1920×1080"),
("1920×1200", "1920×1200")
]
resolution = tk.StringVar()
resolution.set("500×500")
for text, mode in MODES:
self.radiobutton = tk.Radiobutton(master, text=text, variable=resolution, value=mode)
self.radiobutton.pack(anchor=tk.W)
self.submit_button = tk.Button(master, text="Submit", command=self.submit)
self.submit_button.pack()
self.cancel_button = tk.Button(master, text="Cancel", command=self.cancelbutton)
self.cancel_button.pack()
def submit(self):
global screenres
screenres = self.radiobutton.get()
root.quit()
self.master.destroy()
print(screenres)
def cancelbutton(self):
raise SystemExit
root = tk.Tk()
my_gui = ResolutionInputGUI(root)
root.mainloop()
任何幫助將不勝感激,因爲我不能似乎解決了這個問題,Tkinter的似乎要比更復雜原本以爲。此外,還有什麼我在這裏效率低下或讓最終用戶的體驗更「友好」?非常感謝!
有你的縮進 –
不對勁@BryanOakley是,由於某種原因,我無法得到它的「如果」語句後縮進正確輸入它的堆棧溢出。它運行,只是有上面解釋的問題。 –
我們只能通過我們所看到的。請花時間修復它。 –