tkinter - Tkinter 使用 python
问题描述
如果我在 tkinter 中有一个主窗口,那么我单击一个按钮并打开另一个窗口(辅助窗口)并最小化第一个窗口,然后我决定单击第二个窗口上的一个按钮以返回第一个窗口(例如“返回按钮”)如何通过按 tkinter 中第二个窗口上的按钮来执行返回第一个窗口的选项?谢谢!
import tkinter as tk
def funcion():
otra_ventana = tk.Toplevel(root)
root.iconify()
def funcion2():
vuelta_ventana.iconify()
root.deiconify()
root = tk.Tk()
boton = tk.Button(root, text="Abrir otra ventana", command=funcion)
boton2 = tk.Button(root, text="return", command=funcion2)
boton.pack()
root.mainloop()
解决方案
它几乎相同,就像您对第一个函数“funcion”所做的那样。但是,您必须在 tk.Toplevel 中打包调用 funcion2 的按钮。
从长远来看,一旦您的应用程序变大,将您的 Windows / Frames 分组到类中将对您有所帮助。
import tkinter as tk
def main():
app = App()
app.mainloop()
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("300x300")
self.popup = None
self.buton = tk.Button(
self,
text="Abrir otra ventana",
command=self.funcion
)
self.buton.pack()
def funcion(self):
self.iconify()
if self.popup is None:
self.popup = MyToplevel(self)
else:
self.popup.deiconify()
class MyToplevel(tk.Toplevel):
def __init__(self, master):
super().__init__()
self.master = master
self.buton = tk.Button(
self,
text="Return",
command=self.funcion2
)
self.buton.pack()
def funcion2(self):
print("hello")
self.master.deiconify()
#self.destroy()#maybe more useful?
self.iconify()
if __name__ == '__main__':
main()
推荐阅读
- javascript - 如何在javascript中访问获取数据?
- java - Mybatis queryFromDatabase 函数中的 NullPointerException
- floating-point - Chebychev 点和浮点精度
- java - 爪哇 | 如何让其中一个线程休眠而其他线程仍在运行?
- c# - 为什么我在这里得到一个空引用异常?
- mysql - sql INSERT INTO 说列计数与第 1 行的值计数不匹配
- go - Golang 自定义类型 fmt 打印
- crm - 在 vtiger CRM 中创建联系人时出现错误消息
- android - 对于相机活动,onActivityResult() 中的结果代码为 -1。如何进行调试?
- javascript - 如何使用 JavaScript 更新内容而不显示它正在刷新“闪烁”?