【问题标题】:Signals and slots in PySide - defining slot in classPySide 中的信号和槽——在类中定义槽
【发布时间】:2012-07-16 01:15:49
【问题描述】:

我是 Qt 和 PySide 的新手,并尝试了解 PySide 中的信号和插槽。

在遵循Signals and Slots in PySide 的文档时,我尝试转移一些代码以在我的班级中使用。

以下代码创建一个 DoubleSpinBox。更改值时,我希望 value_changed_funcvalue_changed_class 两个函数都打印该值,但只有 value_changed_func 被调用。

from PySide import QtCore
from PySide import QtGui

@QtCore.Slot(float)
def value_changed_func(value):
    print "Event func:"
    print value

class MainController(QtCore.QObject):

    def __init__(self, parent):
        self._ui = QtGui.QDoubleSpinBox(parent)

        self._ui.valueChanged.connect(self.value_changed_class)
        self._ui.valueChanged.connect(value_changed_func)

    @QtCore.Slot(float)
    def value_changed_class(self, value):
        print "Event class:"
        print value


app = QtGui.QApplication([])

main_window = QtGui.QMainWindow()
MainController(main_window)
main_window.show()

app.exec_()

我做错了什么?如何让value_changed_class 被调用?

【问题讨论】:

    标签: python signals-slots pyside


    【解决方案1】:

    你没有调用父构造函数:

    def __init__(self, parent):
        super(MainController, self).__init__(parent)
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2015-02-09
      • 2013-10-22
      • 2012-06-08
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多