PyQt 中这两个 clicked() 信号有啥区别?
Posted
技术标签:
【中文标题】PyQt 中这两个 clicked() 信号有啥区别?【英文标题】:What is a difference between these two clicked() signals in PyQt?PyQt 中这两个 clicked() 信号有什么区别? 【发布时间】:2016-11-01 10:37:40 【问题描述】:QtCore.QObject.connect(my_button, QtCore.SIGNAL('clicked()'), my_func)
和
my_button.clicked.connect(my_func)
我通常使用第一个选项,但后来我找到了第二个,想知道它们之间有什么区别。
【问题讨论】:
【参考方案1】:第一个选项是old-style signal and slot syntax,现在已过时。你仍然可以在 PyQt4 中使用它,但在 PyQt5 中根本不支持它。第二个选项是new-style signal and slot syntax,可用于 PyQt5 和所有最新版本的 PyQt4(它是在 v4.5 中引入的)。
PyQt 文档列出了旧式语法的以下缺点:
它需要了解 C++ 类型的信号参数。 如果输入错误的信号名称或签名很容易出错 - 则不会引发异常,无论是当信号是 连接或发射。 很冗长。 它不是 Pythonic。
【讨论】:
以上是关于PyQt 中这两个 clicked() 信号有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用pyqt4写GUI小程序时一个clicked信号调用三次槽函数