至于有人新的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是,由于某种原因,我无法得到它的“如果”语句后缩进正确输入它的堆栈溢出。它运行,只是有上面解释的问题。 –
我们只能通过我们所看到的。请花时间修复它。 –