首页 > 其他分享 >PyQT5信号与槽的连接

PyQT5信号与槽的连接

时间:2024-06-08 13:45:49浏览次数:13  
标签:__ clicked okButton self PyQT5 信号 import 连接 layout

方法一:

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys


class AutoSignalSlot(QWidget):

    def __init__(self):
        super().__init__()
        self.setWindowTitle("信号与槽自动连接")
        self.resize(300, 100)

        self.okButton = QPushButton("OK", self)     # 将btn绑定到窗口
        self.okButton.setObjectName('okButton')

        layout = QHBoxLayout()
        layout.addWidget(self.okButton)
        self.setLayout(layout)
        
        # 方法一
        self.okButton.clicked.connect(self.on_okButton_clicked)

    def on_okButton_clicked(self):
        print("点击了OK按钮!")


if __name__ == '__main__':

    app = QApplication(sys.argv)
    main_win = AutoSignalSlot()
    main_win.show()
    sys.exit(app.exec_())

方法二:
信号与槽自动连接
on_objectname_signalname
例如:on_okButton_clicked

from PyQt5.QtCore import *
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
import sys


class AutoSignalSlot(QWidget):

    def __init__(self):
        super().__init__()
        self.setWindowTitle("信号与槽自动连接")
        self.resize(300, 100)

        self.okButton = QPushButton("OK", self)     # 将btn绑定到窗口
        self.okButton.setObjectName('okButton')

        self.cancelButton = QPushButton("Cancel", self)     # 将btn绑定到窗口
        self.cancelButton.setObjectName('cancelButton')

        layout = QHBoxLayout()
        layout.addWidget(self.okButton)
        self.setLayout(layout)

        # 方法一
        # self.okButton.clicked.connect(self.on_okButton_clicked)
        # 方法二
        QMetaObject.connectSlotsByName(self)

    @QtCore.pyqtSlot()
    def on_okButton_clicked(self):
        print("点击了OK按钮!")

    @QtCore.pyqtSlot()
    def on_cancelButton_clicked(self):
        print("点击了cancel按钮!")


if __name__ == '__main__':

    app = QApplication(sys.argv)
    main_win = AutoSignalSlot()
    main_win.show()
    sys.exit(app.exec_())



标签:__,clicked,okButton,self,PyQT5,信号,import,连接,layout
From: https://www.cnblogs.com/jackchen28/p/18238562

相关文章

  • PyQT5信号刷新时间
    importtimefromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsysclassBackendThread(QThread):update_date=pyqtSignal(str)defrun(self):whileTrue:data=QDateTime.currentDateTime()currentTim......
  • PyQT5之信号关闭窗口
    fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsysclassWinSignal(QWidget):#定义一个信号button_clicked_signal=pyqtSignal()def__init__(self):super().__init__()self.setWindowTitle("为窗口类添加信号")......
  • 信号与槽N对N
    ···fromPyQt5.QtCoreimport*classNNSignal(QObject):#定义一个信号signal1=pyqtSignal()#发送3个参数的信号signal2=pyqtSignal(int)signal3=pyqtSignal()def__init__(self):super().__init__()self.signal1.connect(self.signal_call1)s......
  • 树莓派连接Windows10 PC以太网线上网
    前言昨天参加RT-Thread线下活动发现有人用Windows10PC的以太网来给Renesas的板子HMI-Board联网,实现MQTT分布式通信,今天闲来无事也想要在树莓派上面试一试教程按下WIN+S快捷键,搜索控制面板在打开的控制面板页面,找到网络和共享中心并点击进去在打开的网络和共享中心页面,......
  • Redis实战——创建账户及连接数据库
    一、创建一个新账户要创建一个带有免费数据库的新账户,请按照以下步骤操作:前往RedisCloud的注册页面。有两种开始使用RedisCloud的选项:在表单中输入您的信息,然后选择“GetStarted”(开始使用)。使用Google或Github账户进行注册。  3.在您输入信息后,您应该会收......
  • 网络原理-计算机网络详解-网线传递数字信号的原理
    网络原理-计算机网络详解-网线传递数字信号的原理家用的网线:传递的数字信号,原理是:(1)和电线传输电的原理一样,只不过网线上传输的就是脉冲电信号,而且遵守一定的电器规则。(2)计算机上的数据都是用0和1来保存的,所以在网线上传输时就要用一个电压表示数据0,用另一个电压表示数据1。(3)网......
  • 如何使用Go语言连接和操作数据库?
    文章目录1.安装MySQL驱动2.连接数据库3.执行查询4.执行插入、更新和删除操作在Go语言中,连接和操作数据库通常使用database/sql包,它提供了一个数据库抽象层,支持多种数据库引擎,如MySQL、PostgreSQL、SQLite等。下面我将以MySQL为例,详细讲解如何使用Go语言连接和......
  • vue 连接mqtt
    下载mqtt服务:npminstallmqttconstmqttConfig={//你的MQTT服务器配置protocolId:'MQTT',protocolVersion:4,clean:true,clientId:'xxxx',reconnectPeriod:1000,connectTimeout:60*1000,//will:{//topic:�......
  • 使用jasypt 和 k8s 避免项目中写数据库连接密码
    0引入jasypt<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version></de......
  • 原生html+js实现两两元素配对,用线条连接两个元素
    效果如下:画线部分借鉴了“https://blogweb.cn/article/1403842582411”此链接文章作者的代码,感谢!直接放出代码:点击查看代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>配对</title><scripttype=&qu......