python3.x+pyqt5实现主窗体(qmainwindow类)里的分割器qsplitter动态载入子窗体
时间: 2023-07-26 08:01:42 浏览: 191
在Python 3.x和PyQt5中,我们可以使用QMainWindow类以及QSplitter实现主窗体中的动态子窗体载入。
首先,我们需要引入PyQt5的相关模块:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QSplitter
```
接下来,需要定义一个功能类MainWindow,继承自QMainWindow,并在初始化方法中设置主窗体的布局和属性方法。
```python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
splitter = QSplitter(self)
self.setCentralWidget(splitter)
self.setWindowTitle("Dynamic Sub Windows")
self.setGeometry(100, 100, 800, 600)
```
在initUI方法中,我们创建了一个QSplitter对象,并将其设置为主窗体的中央部件(setCentralWidget)。然后,我们设置了主窗体的标题(setWindowTitle)以及位置和大小(setGeometry)。
接下来,我们需要实现一个子窗体类SubWindow,继承自QWidget,并在其中定义子窗体的布局和属性方法。
```python
class SubWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.initUI()
def initUI(self):
self.setWindowTitle("Sub Window")
```
在initUI方法中,我们设置了子窗体的标题。
最后,我们在主函数中创建QApplication对象,以及MainWindow和SubWindow对象,并将SubWindow对象添加到QSplitter对象中。
```python
if __name__ == "__main__":
app = QApplication([])
mainWindow = MainWindow()
subWindow = SubWindow()
mainWindow.centralWidget().addWidget(subWindow)
mainWindow.show()
app.exec_()
```
在主函数中,我们首先创建了一个QApplication对象,然后创建了MainWindow对象。接着,我们创建了SubWindow对象,并将其添加到QSplitter对象中。最后,通过show方法显示主窗体,然后调用app.exec_()方法启动应用程序的事件循环。
通过以上步骤,我们就可以实现一个主窗体中动态载入子窗体的应用程序。在运行程序后,我们可以在主窗体中看到一个可以分割的窗体,并在其中展示了一个子窗体,并且可以根据需要调整子窗体的大小。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)