赞
踩
用PyUIC转化为.py文件
1、在主窗口中创造一个类,继承子窗口的页面
2、在主窗口函数中实例化子窗口类
3、信号槽连接,将按钮和子窗口连接起来(pushButton_6)
4、在打开子窗口函数中显示
5、在主窗口运行函数中定义
1、在转化好的子窗口.py文件中,写初始化函数,并继承QMainWindow类,同时,在初始化函数里调用页面布局以及显示函数setupUi
以及retranslateUi
2、在主窗口类初始化中,实例化子窗口(否则子窗口和父窗口都会闪退)
3、同样进行信号槽连接,以及子窗口显示函数
4. 结束
在子窗口类中定义信号,其中,()中可以是需要传递的多个参数的数据类型,可以是int,str等等。
class Ui_configure(QDialog, object):
# 定义信号
_signal = QtCore.pyqtSignal()
# _signal = QtCore.pyqtSignal(str,str) # 多个参数可以用','隔开
这里使用按钮进行发射,将按钮和发射信号的槽函数连接。当按钮被按下时,发射信号。
# 信号槽连接函数
def signalSlotConnection(self):
self.pushButton_confirm.clicked.connect(self.onConfirmClick)
# 标注按钮按下时执行
def onConfirmClick(self):
print("confirm")
# self.measureNum = self.spinBox_measureNum.value()
# self.motorNum = self.spinBox_motorNum.value()
# 发射信号
self._signal.emit()
# 如果需要传递参数,则在括号中传入参数即可。
# self._signal.emit(data_str1, data_str2)
在打开子窗口的函数中接收信号和参数,接收到信号时,执行self.addLabel
操作
# 打开 参数配置 窗口
def fireupConfig(self):
self.ChildConfigure.show()
self.ChildConfigure._signal.connect(self.addLabel)
def addLabel(self):
...
print("接收到信号")
如果是传了参数过来,则执行的函数要有对应的接收参数的数量。
def addLabel(self, par1, par2):
...
print("接收到信号,参数1=" + par1 + ",参数2=" + par2)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。