MainWindow对象没有属性' connect'

时间:2015-12-30 08:31:56

标签: python-3.x signals-slots pyqt5

我想知道是否有人可以帮我解决PyQt5中有关插槽连接的问题。以下代码段将向您显示我的问题。

class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        path = os.path.join(os.path.dirname(__file__), 'GUI/Main_GUI.ui')
        self.gui = loadUi(path)

        self.gui.button_1.clicked.connect(self.run.this)

    def _connect_my_slots(self, origin):
        self.connect(origin, SIGNAL('completed'), self._show_results)
        self.connect(origin, SIGNAL('error'), self._show_error)

    def run_this(self):
        myThread = LongRunningThing()
        self._connect_my_slots(self.myThread) # THIS IS THE PART THAT CAUSES ERROR

正如您所见,我的MainWindow对象是我的UI文件(来自QtDesigner 5),一旦我调用_connect_my_slots函数,就会抛出错误:

  

AttributError:' MainWindow'对象没有属性' connect'

1 个答案:

答案 0 :(得分:1)

您正在使用旧样式信号和插槽,PyQt5不再支持。

旧式:

self.connect(origin, SIGNAL('completed'), self._show_results)

现在应该用新的风格写成:

origin.completed.connect(self._show_results)

有关详细信息,请参阅New-style Signal and Slot Support上的文档。