@pyqtSignature() 和@pyqtSlot() pyqt 装饰器有什么区别
What's the difference between @pyqtSignature() and @pyqtSlot() pyqt decorators
我正在尝试编写一个连接到不同 pyqt 信号的插槽。我仍然无法理解的是两个装饰器 @pyqtSignature() 和 @pyqtSlot() 之间的区别。
连接到继承自QAbstractButton的QPushButton的pyqt点击信号的示例,我使用了以下语法on_widgetName_signalName
,当使用@pyqtSignature(""):
@pyqtSignature("")
def on_bn_gpx_select_file_clicked(self):
"""
Run when QPushButton is pressed, or do something
"""
pass
现在使用@pyqtSlot()时
@pyqtSlot()
def on_bn_gpx_select_file_clicked(self):
"""
Run when QPushButton is pressed, or do something
"""
pass
我的问题是,这两个装饰器有什么区别,什么时候应该使用@pyqtSignature 或@pyqtSlot()
谢谢
pyqtSignature
装饰器是 PyQt-4.5 中 old-style signal and slot syntax, which was replaced by the new-style signal and slot syntax 的一部分。
两个装饰器都有相同的用途,即显式地将 python 方法标记为 Qt 槽并为其指定 C++ 签名(最常见的是为了 select 特定的重载) .两个装饰器之间唯一相关的区别是 pyqtSlot
有更多 pythonic API。
永远不需要在新代码中使用 pyqtSignature
- 它只是为了向后兼容才真正需要。
我正在尝试编写一个连接到不同 pyqt 信号的插槽。我仍然无法理解的是两个装饰器 @pyqtSignature() 和 @pyqtSlot() 之间的区别。
连接到继承自QAbstractButton的QPushButton的pyqt点击信号的示例,我使用了以下语法on_widgetName_signalName
,当使用@pyqtSignature(""):
@pyqtSignature("")
def on_bn_gpx_select_file_clicked(self):
"""
Run when QPushButton is pressed, or do something
"""
pass
现在使用@pyqtSlot()时
@pyqtSlot()
def on_bn_gpx_select_file_clicked(self):
"""
Run when QPushButton is pressed, or do something
"""
pass
我的问题是,这两个装饰器有什么区别,什么时候应该使用@pyqtSignature 或@pyqtSlot()
谢谢
pyqtSignature
装饰器是 PyQt-4.5 中 old-style signal and slot syntax, which was replaced by the new-style signal and slot syntax 的一部分。
两个装饰器都有相同的用途,即显式地将 python 方法标记为 Qt 槽并为其指定 C++ 签名(最常见的是为了 select 特定的重载) .两个装饰器之间唯一相关的区别是 pyqtSlot
有更多 pythonic API。
永远不需要在新代码中使用 pyqtSignature
- 它只是为了向后兼容才真正需要。