两个不同class调用彼此变量,关键在Signal、emit与connect槽函数应用。
MainWinGUI.py
from PySide6 import QtWidgets, QtCore, QtGui
from PySide6.QtWidgets import *
import sys
from Ui_MainWindow import Ui_MainWindow
from ChildWinGUI import ChildForm
class MainForm(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainForm, self).__init__() #ChildForm
self.setupUi(self) # 函数定义来自MainWinGUI.py
# 这里的ChildForm()是我们创建子窗口类
# 我们将其命名为OurNewWindow
self.OurNewWindow = ChildForm() # 子窗口实例化
# 调用子窗口,并向子窗口传递参数
# 方法 1
self.SendButton_1.clicked.connect(self.CallChildWin)
self.SendButton_2.clicked.connect(self.CallChildWin)
def CallChildWin(self):
#初始化子窗口
# self.OurNewWindow.init_Ui()
# 显示子窗口
self.OurNewWindow.show()
# 连接信号
self.OurNewWindow.param_signal.connect(self.display_params)
# 使用sender()获取当前按键名称判断

该代码示例展示了如何在PySide6的Qt环境中,通过信号和槽机制实现两个不同窗口类之间的通信。MainForm类中,当用户点击SendButton_1或SendButton_2时,会触发ChildForm子窗口的显示,并传递不同的参数。ChildForm接收到信号后,读取用户输入并发送回MainForm,更新文本浏览器的内容。
最低0.47元/天 解锁文章
1196





