PyQt 4.5+控件的信号槽事件定义方法
2014-10-31 00:00
375 查看
摘要: PyQt 4.5+控件的信号槽事件定义方法
Qt采用信号槽来设定UI界面上元素动作的事件绑定。自Qt4.5开始,引入了一个新的信号槽与事件绑定的方法。界面上控件可以发出的默认内容都已经由Qt库定义好了,我们只需要定义处理方法即可。
从Designer设计出的控件中会使用setObjectName设定控件的名字,这个名字就可以让我们快捷的定义指定信号槽对应的处理方法。通过@PyQt4.QtCore.pyqtslot()修饰方法可以完成这一动作。定义方法如下:
这种定义方法同样适用与自定义的信号槽。
首先需要定义信号:
然后定义信号的激发:
定义槽函数:
之后需要将信号与槽进行连接:
Qt采用信号槽来设定UI界面上元素动作的事件绑定。自Qt4.5开始,引入了一个新的信号槽与事件绑定的方法。界面上控件可以发出的默认内容都已经由Qt库定义好了,我们只需要定义处理方法即可。
从Designer设计出的控件中会使用setObjectName设定控件的名字,这个名字就可以让我们快捷的定义指定信号槽对应的处理方法。通过@PyQt4.QtCore.pyqtslot()修饰方法可以完成这一动作。定义方法如下:
@PyQt4.QtCore.pyqtSlot(参数) #这个参数请到SDK中找,写参数的类型即可 def on_对象名称_信号名称(self,参数): #on接setObjectName设定的对象名字再接SDK中标出的信号名称,即可完成信号处理事件的定义 pass
这种定义方法同样适用与自定义的信号槽。
首先需要定义信号:
class MyWidget(QWidget): Signal_NoParameters = PyQt4.QtCore.pyqtSignal() # 无参数信号 Signal_OneParameter = PyQt4.QtCore.pyqtSignal(int) # 一个参数(整数)的信号
然后定义信号的激发:
class MyWidget(QWidget): def mousePressEvent(self, event): self.Signal_NoParameters.emit() # 焕发无参数信号 self.Signal_OneParameter.emit(1) # 焕发一个参数(整数)的信号
定义槽函数:
class MyWidget(QWidget): @PyQt4.QtCore.pyqtSlot() def setValue_NoParameters(self): pass @PyQt4.QtCore.pyqtSlot(int) def setValue_OneParameter(self,nIndex): pass
之后需要将信号与槽进行连接:
widget.Signal_NoParameters.connect(self.setValue_NoParameters,Qt.QueuedConnection) widget.Signal_OneParameter.connect(self.setValue_OneParameter,Qt.QueuedConnection)
相关文章推荐
- PyQt 4.5+控件的信号槽事件定义方法 - 静滞之境 - 开源中国社区
- PyQt 4.5+控件的信号槽事件定义方法
- Pyqt 控件的信号槽事件定义方法
- Qt的事件模型(5种使用办法,通常重新实现event handler即可。只有定义控件才需要管理信号的发射)
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误: “A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)
- PyQt5(4)——控件事件响应与信号槽
- ATL ActiveX 控件的方法或事件中使用枚举常量
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- GridView控件常见问题及处理方法===1. 关于隐藏字段的处理:==2. 关于按钮列的事件:==3. 关于按钮的客户端提示:==4. 关于时间字段的格式化输出:==5. 关于绑定空记录:
- 关于页面中获取用户控件中的控件 事件的方法
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- ASP.NET用户控件事件的定义和实践--C#里的委托和事件实现Observer