网站首页 > 技术文章 正文
在PyQt5中,信号与槽的使用有如下特点
- 一个信号可以关联多个槽函数。
- 一个信号也可以关联其他信号。
- 信号的参数可以是任何Python数据类型。
- 一个槽函数可以和多个信号关联。
- 关联可以是直接的或排队的。
- 可以在不同的线程之间建立关联。
- 信号与槽也可以断开关联。
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import QObject, pyqtSlot, pyqtSignal
class Human(QObject):
# 定义一个带str类型参数的信号
nameChanged = pyqtSignal(str)
# overload型信号,两种参数,一种int,一种str
ageChanged = pyqtSignal([int], [str])
def __init__(self, name='xxx', age=10, parent=None):
super().__init__(parent)
def setAge(self, age):
self.__age = age
self.ageChanged.emit(self.__age) # int参数信号
if age <= 18:
ageInfo = "你还是一个小孩"
else:
ageInfo = "你是一个大人"
self.ageChanged[str].emit(ageInfo) #str参数信号
def setName(self, name):
self.__name = name
self.nameChanged.emit(self.__name)
class Responsor(QObject):
@pyqtSlot(int)
def do_ageChanged_int(self, age):
print("你的年龄是:"+str(age))
@pyqtSlot(str)
def do_ageChanged_str(self, age):
print(age)
def do_nameChanged(self, name):
print("你好,"+name)
if __name__ == "__main__":
print("**程序开始**")
boy = Human()
resp = Responsor()
# 信号与槽函数连接
boy.nameChanged.connect(resp.do_nameChanged)
boy.ageChanged.connect(resp.do_ageChanged_int) #缺省参数,int型
boy.ageChanged[str].connect(resp.do_ageChanged_str)
print("\n **建立连接后**")
boy.setAge(20)
boy.setName("Jake")
猜你喜欢
- 2025-01-20 牛掰!Python炫技—— 企业微信机器人每天定时发消息实例
- 2025-01-20 阿愚呱呱RPA:RPA 机器人,找人定制一个还自己来组装
- 2025-01-20 微信群总是有人发广告?看我用Python写一个机器人消灭他
- 2025-01-20 博普乐 Popular Robotics | 机器人AI在线课程Python+树莓派
- 2025-01-20 Python机器人编程主控板microbit简介
- 2025-01-20 小试牛刀 自己建立一个AI聊天机器人
- 2025-01-20 python脚本实现钉钉机器人发送消息
- 2025-01-20 Python机器人教学——控制数码管显示字符
- 2025-01-20 大疆推出首款教育机器人,可编程支持竞速对战
- 2025-01-20 使用 Python 创建 Telegram 机器人
- 258℃Python短文,Python中的嵌套条件语句(六)
- 258℃python笔记:for循环嵌套。end=""的作用,图形打印
- 257℃PythonNet:实现Python与.Net代码相互调用!
- 252℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 107℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 83℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)