使用python pyqt button按钮把之前打开的tk窗口给关掉
时间: 2024-10-16 17:12:39 浏览: 14
使用Python 开发 windows 桌面程序-综合文档
在Python中,如果你正在使用PyQt库创建GUI,并且想通过一个QPushButton来关闭之前的Tkinter窗口,你需要首先确保这两个窗口分别由不同的线程或进程管理,因为它们属于不同的图形系统。下面是一个简单的例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
from tkinter import Tk
# 创建Tkinter窗口
class TkWindow(Tk):
def __init__(self):
super().__init__()
self.title("Tk Window")
# ... (添加你的Tkinter窗口内容)
# 创建PyQt窗口
class PyQtWindow(QWidget):
def __init__(self):
super().__init__()
# 创建一个按钮并设置其槽函数
close_button = QPushButton('Close Tk', self)
close_button.clicked.connect(self.close TkWindow)
def close_TkWindow(self):
# 确保Tk窗口已经实例化并且显示出来
tk_window = TkWindow()
tk_window.mainloop() # 运行Tk窗口直到用户关闭它
tk_window.destroy() # 关闭Tk窗口
if __name__ == '__main__':
app = QApplication(sys.argv)
# 首先创建Tk窗口
tk_window = TkWindow()
# 然后创建并展示PyQt窗口
qt_window = PyQtWindow()
qt_window.show()
# 如果PyQt窗口的按钮被点击,会调用close_TkWindow方法关闭Tk窗口
sys.exit(app.exec_())
```
在这个例子中,当PyQt窗口上的“Close Tk”按钮被点击时,`close_TkWindow`方法会被调用,它会启动Tk窗口的事件循环,允许用户交互,然后关闭窗口。
阅读全文