【发布时间】:2016-05-30 21:57:20
【问题描述】:
所以,我是 python 编程的新手。我已经开始在 pyqt5 中实现一个 UI,我有一个按钮,我想在用户点击它时做出反应。
根据this Link 我应该简单地写btn.clicked.connect(self.buton_pressed) 但是我收到消息“在函数中找不到引用连接”。 (周围的代码在问题的最后)
所以我用谷歌搜索了一下,我发现它应该就是这样工作的。我只是不明白为什么它没有。我发现了这个Stackoverflow question,它也描述了如何做到这一点的旧变体。这也不起作用,经过一番谷歌搜索后,我发现 pyqt5 或其他包不再支持它。
我尝试连接到事件的函数:
def __add_button(self, text: str, layout: QLayout):
btn = QPushButton(text, self)
layout.addWidget(btn)
btn.clicked.connect(self.button_pressed)
# TODO: fix this.
return btn
生成GUI的代码和调用的函数,在__init__函数中
lblhm = QLabel("Hauptmessung", self)
layout.addWidget(lblhm)
self.__hm_b = self.__add_button("Messung öffnen", layout)
self.__hm_config_b = self.__add_button("Configruation öffnen", layout)
lblzm = QLabel("Zusatzmessung", self)
layout.addWidget(lblzm)
self.__zm_b = self.__add_button("Messung öffnen", layout)
self.__zm_config_b = self.__add_button("Configuration öffnen", layout)
button_pressed 函数尚未实现,但它应该打开一个 openFile 对话框以进行文件选择。
根据this post,我可以在返回函数后连接,但是我必须写4次,这不是很好。信号不是绑定到对象而不绑定到变量吗?
感谢您的帮助:)
【问题讨论】:
-
您能否提供所有代码,以便我们查看该函数的位置以及如何使用它?
-
它类似于其他问题,问题是我不能简单地将它分配给该函数中的实例变量,因为我多次调用它。只有当它被退回时,我才分配它。添加了该代码。