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 顶级窗口 阻塞式窗口
最新推荐文章于 2023-07-05 21:42:56 发布