我想知道是否有人可以帮我解决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'
答案 0 :(得分:1)
您正在使用旧样式信号和插槽,PyQt5不再支持。
旧式:
self.connect(origin, SIGNAL('completed'), self._show_results)
现在应该用新的风格写成:
origin.completed.connect(self._show_results)
有关详细信息,请参阅New-style Signal and Slot Support上的文档。