创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
吉泽明步qvod PyQt 玩转 pyqtSignal 自界说信号,怎么让多页面之间进行通讯 - 性爱大师第一季

  • 首页
  • 金发美女
  • 金发大奶
  • 大奶人体艺术
  • 大奶女
  • 大奶美女
  • 泷川雅美视频
  • 金发美女

    吉泽明步qvod PyQt 玩转 pyqtSignal 自界说信号,怎么让多页面之间进行通讯

    发布日期:2024-09-07 04:22    点击次数:156
    PyQt pyqtSignal 自界说信号实例训诲,多页面信息传递

    个东说念主合计pyqtSignal是pyqt里额外实用的一个接口,是 PyQt5 提供的自界说信号类; 其用法比拟纯真吉泽明步qvod,额外合适用于多页面之间的信号,信息传递,其秉承自QtCore类。

    基本用法: 信号传递轨范:不错传递的信息,不错说是基本上掩饰了Python的所罕有据类型。

    pyqtSignal(str)  # 传递字符串数据
    pyqtSignal(list)  # 传递列表数据
    pyqtSignal(tuple)  # 传递元祖数据
    pyqtSignal(dict)  # 传递字典数据
    

    其用法可归纳为:

    插插综合网

    1、界说信号 diy_signal = pyqtSignal(str); 2、信号引发:diy_signal.emit(需传递的数据); 3、接收信号:diy_signal.connect(引发的槽函数)。

    不错看出pyqtSignal和pyqt的信号与槽用法额外肖似。 皆有信号的引发吉泽明步qvod,信号与槽函数的聚首经由。如:QPushButton().clicked.connect(click_func)。 只不外其信号相干于按钮的点击而言,为自界说信号。

    实例用法: 咱们先来试着用pyqtsignal信号来完成以下的需求: 有两个父子页面,当子页面被创建和关闭时,父页面深远子页面景况信息。 完成最终成果:

    图片

    先创建父页面类:

    #  导入模块
    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import Qt,pyqtSignal
    from PyQt5.QtGui import QFont
    
    # 创建父页面类
    class Parents_Widget(QWidget):
        def __init__(self):
            super(Parents_Widget, self).__init__()
            # 页面基础竖立
            # 竖立窗口标题
            self.setWindowTitle('父页面')
            # 竖立页面尺寸
            self.resize(500,200)
            # 创建Label控件
            # 页面标题label
            self.label_0 = QLabel('页面间信号传递实例')
            # 竖立label控件居中
            self.label_0.setAlignment(Qt.AlignCenter)
            # 竖立字体形貌
            self.label_0.setFont(QFont('宋体',12,QFont.Bold))
            self.label_1 = QLabel('子页面景况:')
            # 创建单行文本输入框
            self.line_1 = QLineEdit()
            # 创建按钮
            self.create_button = QPushButton('创建子页面')
            self.close_button = QPushButton('关闭子页面')
            # 按钮启动轨范
            self.button_init()
            # 创建布局处分器
            self.h1_layout = QHBoxLayout()  # 水平布局处分器
            self.h2_layout = QHBoxLayout()
            self.v_layout = QVBoxLayout()  # 垂直布局处分器
            # 页面启动化
            self.layout_init()
    
        # 页面布局轨范
        def layout_init(self):
            # 水平布局处分器1
            self.h1_layout.addWidget(self.label_1)
            self.h1_layout.addWidget(self.line_1)
            # 水平布局处分器2
            self.h2_layout.addWidget(self.create_button)
            self.h2_layout.addWidget(self.close_button)
            # 垂直布局处分器
            self.v_layout.addStretch(1)
            self.v_layout.addWidget(self.label_0)
            self.v_layout.addSpacing(10)
            self.v_layout.addLayout(self.h1_layout)
            self.v_layout.addSpacing(10)
            self.v_layout.addLayout(self.h2_layout)
            self.v_layout.addStretch(1)
            # 竖立最终布局
            self.setLayout(self.v_layout)
    
        # 按钮启动化轨范
        def button_init(self):
            # 创建子页面按钮点击信号绑定槽函数
            self.create_button.clicked.connect(self.create_func)
            # 关闭子页面按钮点击信号绑定槽函数
            self.close_button.clicked.connect(self.close_func)
    
        # 创建子页面轨范
        def create_func(self):
            # 创建子页面
            self.child_widget = Child_Widget()
            # 子页面自界说信号绑定深远子页面信息轨范
            self.child_widget.status_signal.connect(
                self.child_widget_info)
            # 竖立子页面称号
            self.child_widget.setWindowTitle('子页面')
            self.child_widget.show()
    
        # 子页面关闭轨范
        def close_func(self):
            try:
                self.child_widget.close()
                self.child_widget.status_signal.connect(self.child_widget_info)
            except:
                self.line_1.setText('子页面不存在!')
    
        # 子页面信息深远轨范
        def child_widget_info(self,info):
            if info == 'create':
                self.line_1.setText('子页面被创建')
            elif info == 'close':
                self.line_1.setText('子页面被关闭')
                
    

    代码分析: 1、父页面有两个按钮:创建子页面按钮,关闭子页面按钮。 2、两个按钮点击信号别离绑定创建页面槽函数,关闭子页面槽函数。 3、创建子页面槽函数,创建了子页面,并将子页面的自界说信号status_signal绑定在子页面信息深远轨范。当子页面自界说信号引发(emit)时激活子页面信息深远槽函数。 4、关闭子页面槽函数,关闭子页面。

    创建子页面类:

    # 创建子页面类
    class Child_Widget(QWidget):
        # 创建自界说子页面景况信号
        status_signal = pyqtSignal(str)
        def __init__(self):
            super(Child_Widget, self).__init__()
            # 设定子页面尺寸
            self.resize(300,300)
            # 设定子页面的窗口称号转换信号与自界说信号勾通
            self.windowTitleChanged.connect(lambda :
                        self.status_signal.emit('create'))
    
        # 重写关闭轨范,将子页面关闭事件与自界说信号勾通
        def closeEvent(self, event):
            self.status_signal.emit('close')
    

    代码分析: 1、自界说信号:status_signal ,其传输的信息类型为字符串。 2、子页面景况有创建和关闭两种景况,创建景况用子页面标题转换信号来绑定自界说信号。 即:子页面标题从无到就怕,自界说信号被引发(emit),并传递 'create’ 字符串信息。 3、子页面关闭景况,这里是重写了页面关闭轨范。让页面关闭事件绑定自界说信号,当页面关闭时引发信号,并传递 'close’ 字符串信号。

    实例父页面类,及展示窗口:

    if __name__ == '__main__':
        page = QApplication(sys.argv)
        # 实例父页面
        window = Parents_Widget()
        window.show()
        sys.exit(page.exec())
    

    结果: 以上等于本次 pyqt5 使用自界说信号 pyqtSignal 来进行页面之间的信息传递的轨范及实例训诲。 因本东说念主Python 及 pyqt5 均为视频能够竹素自学吉泽明步qvod,门路可能比拟野…。 有讲的不了了,能够诞妄之处,接待群众留言商议。也可加本东说念主微信:dw20200318,索求源码,一说念学习。

    本站仅提供存储事业,通盘本色均由用户发布,如发现存害或侵权本色,请点击举报。

    创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
    JzEngine Create File False