这篇文章将为大家详细讲解有关PythonPyQt5中如何自定义信号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PyQ5已经自动定义了很多QT自建的信号。但是在实际的使用中为了灵活使用信号与槽机制,可以根据需要自定义信号。通过使用pyqtSignal()方法定义新的信号,新的信号作为类的属性。自定义signal说明:新的信号应该定义在QObject的子类中。新的信号必须作为定义类的一部分,不允许将信号作为类的属性在类定义之后通过动态的方式进行添加。通过这种方式新的信号才能自动的添加到QMetaObject类中。这就意味这新定义的信号将会出现在免费云主机域名Qt Designer,并且可以通过QMetaObject API实现内省。自定义信号的发射,通过emit()方法类实现自定义信号的一般流程如下:定义信号定义槽函数绑定信号和槽发射信号代码示例样例说明:通过一个模拟打印的界面来详细说明一下关于信号的自定义,在打印的时候可以设定打印的分数,纸张类型,触发“打印”按钮之后,将执行结果显示到右侧;通过全屏预览QCheckBox来选择是否通过全屏模式进行预览,将执行结果显示到右侧。通过点击F1快捷键,可以显示helpMessage信息。界面分析:该界面主要由两个部分组成:一个是打印控制,另一个是操作结果。通过QHBoxLayout组合起来,如下所示:然后通过creatContorls定义“打印控制”界面,QSpinBox是一个计数器控件,允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然用户也可以输入值。QComboBox是一个集按钮和下拉选项于一体的控件,也称做下拉列表框。然后通过creatResult定义“操作结果”界面:代码分析:通过pyqtSignal()定义了三个信号,helpSignal,printSignal,previewSignal。其中:helpSignal 为str参数类型的信号。printSignal 为list参数类型的信号。previewSignal为一个多重载版本的信号,包括了一个带int和str类型参数的信号,以及str类行的参数。绑定信号和槽。着重说明一下多重载版本的信号的绑定,previewSignal有两个版本previewSignal(str),previewSignal(int,str)。由于存在两个版本,从因此在绑定的时候需要显式的指定信号和槽的绑定关系。具体如下:self.previewSignal[str].connect(self.previewPaper) self.previewSignal[int,str].connect(self.previewPaperWithArgs)其中[str]参数的previewSignal信号绑定previewPaper();[int,str]的previewSignal信号绑定previewPaperWithArgs()多重载版本的信号的发射也需要制定对应发射的版本,类似同信号的版定。如代码中所示,在信号发射的时候可以传递python数据类型的参数,在本例中传递list类型的参数pList。通过复写keyPressEvent()方法,将F1快捷键进行功能的拓展。在windows的大部分应用,我们都会使用一些快捷键来快速的完成某些特定的功能。比如F1键,会快速调出帮助界面,那就可以复写keyPressEvent()方法来模拟发送所需的信号,来完成对应任务。注意事项:1.自定义的信号在init()函数之前定义2.自定义型号可以传递,str、int、list、object、float、tuple、dict等很多类型的参数3.注意signal和slot的调用逻辑,避免signal和slot之间出现死循环。如在slot方法中继续发射该信号关于“PythonPyQt5中如何自定义信号”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
这篇文章主要讲解了“C++多态的实现与原理及抽象类实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++多态的实现与原理及抽象类实例分析”吧!多态: 从字面意思来看,就是事物的多种形态。用C++的语言说就…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。