pyqt5 子窗口嵌入父窗口
时间: 2023-11-07 22:49:23 浏览: 202
要将PyQt5子窗口嵌入到父窗口中,可以按照以下步骤进行操作:
1. 在父窗口的类中创建一个成员变量,用于存储子窗口的实例。
2. 在父窗口的类初始化方法中实例化子窗口,并将子窗口的父窗口设置为当前的父窗口。
3. 连接信号和槽,将按钮点击事件与显示子窗口的函数连接起来。
4. 在显示子窗口的函数中,调用子窗口的show()方法显示子窗口。
下面是一个示例代码,演示了如何将PyQt5子窗口嵌入到父窗口中:
```python
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
self.setGeometry(100, 100, 300, 200)
self.child_window = ChildWindow(self) # 创建子窗口实例,并将父窗口设置为当前窗口
button = QPushButton("Open Child Window", self)
button.setGeometry(100, 100, 150, 30)
button.clicked.connect(self.show_child_window) # 将按钮点击事件与显示子窗口的函数连接起来
def show_child_window(self):
self.child_window.show() # 显示子窗口
class ChildWindow(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Child Window")
self.setGeometry(200, 200, 200, 100)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在这个示例中,MainWindow是父窗口,ChildWindow是子窗口。在MainWindow的构造函数中,我们实例化了ChildWindow,并将其父窗口设置为当前的MainWindow。然后,我们创建了一个按钮,并将其点击事件连接到show_child_window函数,该函数用于显示子窗口。在show_child_window函数中,我们调用子窗口的show()方法来显示子窗口。
这样,当点击按钮时,子窗口就会嵌入到父窗口中显示出来。
阅读全文