高手进阶之路---pyqt自定义信号

这篇具有很好参考价值的文章主要介绍了高手进阶之路---pyqt自定义信号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

高手进阶之路—pyqt自定义信号

1.思考问题为什么要自定义信号,qt5本身已有信号槽函数
高手进阶之路---pyqt自定义信号,Pyqt5,pyqt

# pushButton 被clicked的时候connect 函数print
self.pushButton.clicked.connect(self.print)

def print(self):
	print("我被点击了")

或者使用

# 需要引入 pyqtSlot 库函数
from PyQt5.QtCore import pyqtSlot

@pyqtSlot() #装饰器,此函数没有connect直接通过装饰器初始化连接槽函数
# 使用此装饰器,需要规定函数命名方式:on_qt部件_clicked(self)
def on_pushButton_clicked(self):
	print("我点击了")

看上去确实很简单,但是我们在编写比较耗时的程序的时候,就会发现我们点击了控件我们的UI界面卡死了,直到主程序运行完成,这是因为我们的主程序在运行我们的代码,不能在去执行其他的操作导致的,所以我们就要使用了多线程,多线程就需要我们自定义信号和槽函数,方法如下:
高手进阶之路---pyqt自定义信号,Pyqt5,pyqt文章来源地址https://www.toymoban.com/news/detail-678567.html

from PyQt5.QtCore import pyqtSignal, QObject


class Signal(QObject):
    # 实例化pyqtSignal,声明一个信号signal
    signal = pyqtSignal(str)  # 这里可以是str,list,int

    def __init__(self):
        super().__init__()

    def connect_signal(self):
        # 将信号连接到指定的槽函数call_signal
        self.signal.connect(self.call_signal)
        # 将信号断开连接到指定的槽函数call_signal
        self.signal.disconnect(self.call_signal)
        # 使用emit发射信号
        self.signal.emit('你好啊')

    def call_signal(self, msg):
        """接收emit发送的数据的函数"""
        print('槽函数信息', msg)


if __name__ == '__main__':
    ui= Signal()
    ui.connect_signal()

到了这里,关于高手进阶之路---pyqt自定义信号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线程池高手进阶:揭秘ThreadPoolExecutor的小妙招!

    ThreadPoolExecutor 是 Java 中用于创建和管理线程池的接口,当线程池中的任务队列已满,并且线程池中的线程数量已经达到最大时,如果再有新的任务提交,就需要一个策略来处理这些无法执行的任务。它 提供了四种拒绝策略,都是 RejectedExecutionHandler 接口的实现,如下: Abor

    2024年01月25日
    浏览(39)
  • PyQt5 垂直滚动条verticalScrollBar操作信号Signal及获取当前值

    1.使用sliderMoved: Tips:使用sliderMoved在鼠标拖动滚动条时可以发出信号激活回调函数,但使用 鼠标滚轮 移动时没有反应 2.使用valueChanged: valueChanged在 拖动和滚轮 移动时都可激活回调函数 获取滚动条的当前值: 注意: self.verticalScrollBar .value() 也可获得当前值,但在滑动时会

    2024年02月11日
    浏览(68)
  • Python入门到高手进阶|这一篇就够了(3万字|超详细)

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感

    2024年02月01日
    浏览(43)
  • CTF攻防世界 Misc高手进阶区 6分题 Wireshark(详细解析)

    目录 题目链接: 题目解析: 获得flag: 得到一个流量包,打开看得眼花,先关注http 一个个追踪,先看到一个网站 tools.jb51.net/aideddesign/img_add_info 打开之后发现是一个图片加密解密的网站,  导出全部http对象,保存出来。  全部导出之后,发现一个png格式的风景照,和两个较

    2024年02月09日
    浏览(36)
  • 【Python进阶编程】python编程高手常用的设计模式(持续更新中)

    Python编程高手通常熟练运用各种设计模式,这些设计模式有助于提高代码的可维护性、可扩展性和重用性。 以下是一些Python编程高手常用的设计模式: 确保一个类只有一个实例,并提供全局访问点。适用于需要共享资源或控制特定资源访问的情景。 其他实现单例模式的方法

    2024年01月24日
    浏览(43)
  • 【python】软件开发——PyQt5、Qt Designer、信号与槽机制、计算器实现

    PyQt5 是一个基于 Python 的 GUI 框架,用于创建跨平台的桌面应用程序。它是 Qt 库的 Python 绑定,结合了 Python 的简洁和易用性以及 Qt 框架的强大功能。 Qt 是一个流行的 C++ 跨平台应用程序开发框架,提供了丰富的图形界面组件、网络通信、数据库访问、多线程等功能。PyQt5 允许

    2024年02月04日
    浏览(42)
  • 【Vue前端】vue使用笔记0基础到高手第2篇:Vue进阶知识点介绍(附代码,已分享)

    本系列文章md笔记(已分享)主要讨论vue相关知识。Vue.js是前端三大新框架:Angular.js、React.js、Vue.js之一,Vue.js目前的使用和关注程度在三大框架中稍微胜出,并且它的热度还在递增。Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。Vue.js是一个构建

    2024年02月19日
    浏览(41)
  • python pyqt5与opencv 遇到的那些坑,pyqt5页面搭建,设置pyqt5设置背景图

    设置pyqt5的背景图片,可以设置一个lable控件,将控件至于底层,然后设置他的背景图 注意路径 解决代码 使用Qt Desiggnei 绘制界面后转换成py代码后 最好不要在生成的py页面代码添加 信号槽,到时候页面改动比较麻烦 转换代码 pyuic5 -o 【转换后的.py】 【UI界面的.ui】 推荐的方

    2024年02月09日
    浏览(57)
  • 【PyQt5】logging封装+pyqt5展示系统日志

    创建logging对象 设置日志输出级别 指定日志输出格式 指定日志输出路径 指定日志输出文件 控制台输出 文件输出 7.1 指定FileHandler 7.2 设置日志输出格式 7.3 设置过滤条件 7.4 将文件输出日志添加过滤条件 7.5 对logger增加handler日志处理器 1.cmd中输入命令,将.ui转换成.py 2.重新封

    2024年02月06日
    浏览(40)
  • [pyqt5]关于在pyqt5界面上鼠标位置问题

    先上代码,主要看鼠标移动事件里面代码 通过运行代码可以发现: 上面这2行就是相当于屏幕左上角坐标了

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包