python pyqt5 从主窗口中弹出子窗口 并且主窗口能通过按钮随时改变子窗口中的标签内容
时间: 2023-04-12 20:01:50 浏览: 155
PyQt5实现从主窗口打开子窗口的方法
5星 · 资源好评率100%
可以使用QDialog来实现弹出子窗口,然后在主窗口中通过按钮的clicked信号连接到一个槽函数,槽函数中可以通过findChild函数找到子窗口中的标签控件,然后修改其内容即可。以下是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QLabel, QPushButton
class SubWindow(QDialog):
def __init__(self):
super().__init__()
self.label = QLabel('子窗口标签内容', self)
self.label.move(50, 50)
self.setWindowTitle('子窗口')
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('主窗口')
self.button = QPushButton('弹出子窗口', self)
self.button.move(50, 50)
self.button.clicked.connect(self.show_sub_window)
def show_sub_window(self):
sub_window = SubWindow()
sub_window.exec_()
label = self.findChild(QLabel, 'label')
if label:
label.setText('修改后的标签内容')
if __name__ == '__main__':
app = QApplication([])
main_window = MainWindow()
main_window.show()
app.exec_()
```
注意:在子窗口中的标签控件需要设置一个objectName属性,以便在主窗口中通过findChild函数找到它。
阅读全文