Python 第七节
2025-04-10
一、自定义信号和综合案例
1、信号和槽
调用槽函数时,如何传参?
本身有些晚信号可以直接传递参数:如输入框的textChanged是可以传递参数的
有些信号如clicked函数,本身不支持传递参数,可以使用lambda匿名函数表达式
# ...
self.btn1.clicked.connect( lambda : self.open_file("hello"))
# ...
def open_file(self, text):
print(text)
# 当btn1按下时,控制台将输出Hello
2、自定义信号
(1)如何创建自定义信号
pyqtSingal()
目标:自定义一个信号和槽函数,当鼠标按下的时候发射信号,调用槽函数
步骤:
创建自定义信息
创建槽函数
将信号的槽函数管理起来
发射信号(需要契机,比如鼠标按下时发射)
(2)自定义信号如何传递参数
信号要携带参数
槽函数声明时带有参数
信号发射的时候,将参数一起传递给槽函数
(3)跨区域(窗口)发射信号
考虑:
信号在哪里发射
槽函数在哪里定义
信号在哪里连接槽函数
3、事件
事件源
触发这个事件的源头
事件类型
鼠标单击,双击,长按,键盘按下等
事件对象
记录一些时间相关信息
鼠标事件:鼠标触发的位置
键盘事件:按了哪个键