信号与槽理解:
理解:事件触发后,反馈给对应的函数处理;例如:信号:-----》我期末考试我考的不好;槽:考试结果不理想-----》回家可能挨打,或者老师教的不好,或者我谈恋爱没认真学习
网上一大堆介绍的,总结如下:
信 号 :控件被点击、者内容被、鼠标移动点击、或者窗口关闭会触发QT的信号机制,发出一个信号;
槽 :理解为一个函数,接受信号,然后进行下一步动作
一、UI界面设计:
设计主ui_main.ui和子ui_subwin.ui窗口界面:
UI界面传不上来,解析成代码,以代码方法给出:
pyside6-uic ui_subwin.ui > ui_subwin.py
pyside6-uic ui_main.ui > ui_main.py
二、代码加载主和子窗口:
主窗口的代码:
# -*- coding:utf-8 -*-
################################################################################
##
# # Design Main Windows
# # BY: 扣脚大汉
# # PROJECT MADE WITH: Qt Designer and PySide6
# # V: 1.0.0
##
################################################################################
from PySide6.QtWidgets import QMainWindow
from PySide6 import QtWidgets
import sys
from subwin import SubWindow # 导入子窗口
from ui_main import Ui_MainWindow # 导入主窗口的UI代码
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.intiUi()
# # 初始化按钮事件
########################################################################
def intiUi(self):
self.ui.open_subwin.clicked.connect(self.openSubwin)
self.sub= SubWindow()
self.sub.sub_Signal.connect(self.getSubwininfo) # # 子窗口信号连接主窗口的槽函数
# # 打开子窗口
########################################################################
def openSubwin(self):
self.sub.move(1200, 310)
self.sub.show()
# # 主窗口接收到子窗口发来的函数后,在主窗口显示出来
########################################################################
def getSubwininfo(self,subarg): # # 主窗口的槽函数
self.ui.recevice_text.setText(subarg)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
root = MainWindow()
root.show()
sys.exit(app.exec())
子窗口的代码:
# -*- coding:utf-8 -*-
################################################################################
##
# # Design Child Windows
# # BY: 扣脚大汉
# # PROJECT MADE WITH: Qt Designer and PySide6
# # V: 1.0.0
##
################################################################################
from PySide6.QtWidgets import QMainWindow, QDialog, QMessageBox, QButtonGroup, QLineEdit, QTabWidget
from PySide6.QtCore import Signal, QUrl
from ui_subwin import Ui_Dialog # 导入子窗口的UI代码
class SubWindow(QDialog):
sub_Signal = Signal(str)