class Top(tk.Toplevel):
"""用户输入窗口
"""
def __init__(self, master, data):
self.master = master
super().__init__(master)
self.geometry("600x300+300+30")
self.attributes("-alpha", 0.9)
self.grab_set()
self.attributes('-topmost', 1)
self.sure = False
self.data = data
ttk.Label(self, text=self.data['title']).grid(row=0, column=0)
ttk.Button(self, text="确认", command=self.ok).grid(row=6, column=6)
if isinstance(self.data['items'], str):
# 根据items 类型生成不同的组件 输入框或者 单选按钮
if self.data['items'] == "int":
self.value = tk.IntVar()
else:
self.value = tk.StringVar()
self.entry = ttk.Entry(self, textvariable=self.value)
self.entry.grid(row=2, column=0)
else:
self.value = tk.StringVar()
for index, v in enumerate(self.data['items'], start=1):
self.create_radio(v, index)
master.wait_window(self)
def ok(self):
self.sure = True
self.destroy()
def create_radio(self, v, index):
ttk.Radiobutton(self, text=v, variable=self.value, value=v).grid(row=index, column=0)
def get_value(self):
if self.sure:
return self.value.get()
# self.master.deiconify()
return None
Tkinter 顶级窗口 阻塞式窗口
最新推荐文章于 2024-07-21 10:55:14 发布
6205

被折叠的 条评论
为什么被折叠?



