我想实现点击一个按钮后,会在主窗口的右侧显示一个子frame,并在这个子frame中添加一些文字,写成两个类用pyqt5实现
时间: 2024-03-27 13:39:43 浏览: 117
好的,下面分别给出主窗口和子窗口的类实现代码。
主窗口类:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFrame
from SubWindow import SubWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 400, 300)
self.setWindowTitle('Main Window')
self.btn = QPushButton('Show Sub Window', self)
self.btn.move(10, 10)
self.btn.clicked.connect(self.showSubWindow)
self.subWindow = SubWindow(self)
self.subWindow.setGeometry(150, 10, 240, 280)
self.subWindow.hide()
def showSubWindow(self):
self.subWindow.show()
```
在主窗口类中,我们首先导入了 `SubWindow` 子窗口类,并在主窗口的初始化函数中创建了一个子窗口实例 `self.subWindow`。当用户点击按钮时,我们调用 `showSubWindow` 函数来显示子窗口。
子窗口类:
```python
from PyQt5.QtWidgets import QFrame, QLabel
class SubWindow(QFrame):
def __init__(self, parent=None):
super().__init__(parent)
self.initUI()
def initUI(self):
self.label = QLabel('This is sub window.', self)
self.label.move(10, 10)
```
在子窗口类中,我们通过继承 `QFrame` 类创建了一个子窗口,并在初始化函数中添加了一个标签 `self.label`。在这个标签中,我们可以添加任何您想要显示的文本内容。
注意:我们在子窗口类中没有添加任何按钮或者其他控件,这是因为没有必要。在主窗口类中,我们已经添加了一个按钮用于显示子窗口,所以我们只需要在子窗口中添加需要显示的内容即可。
您可以将以上代码保存到两个文件中,分别命名为 `MainWindow.py` 和 `SubWindow.py`,然后运行 `MainWindow.py` 文件来查看效果。如果您有任何问题,请随时向我提问。
阅读全文