AttributeError: 'builtin_function_or_method' object has no attribute 'connect'
AttributeError: 'builtin_function_or_method' object has no attribute 'connect'
我正在使用基于 PyQt4 的 PyQt。我正在使用 PyCharm 2017.3。我的 python 版本是 3.4。
我正在尝试连接单击鼠标以从 QLineEdit 捕获内容时获得的信号。
class HelloWorld(QMainWindow, tD_ui.Ui_MainWindow):
# defining constructor
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.getContent()
self.putValues()
self.setWindowTitle("Downloader")
self.pushButton.mousePressEvent.connect(self.getContent)
因此,当我 运行 出现 code.The 以下错误时
Traceback (most recent call last):
File "C:/Project/Downloader/Implement.py", line 113, in <module>
helloworld = HelloWorld()
File "C:/Project/Downloader/Implement.py", line 18, in __init__
self.pushButton.mousePressEvent.connect(self.getContent)
AttributeError: 'builtin_function_or_method' object has no attribute 'connect'
P.S-> 请尽量避免解决方案中的遗留代码
mousePressEvent
不是信号,所以你不应该使用连接,你应该使用 clicked
信号:
self.pushButton.clicked.connect(self.getContent)
加上:
在Qt中,因此对于PyQt来说,有信号和事件,信号被发出,事件必须被覆盖,在按钮的情况下,被点击的任务是自然的和固有的逻辑,所以这个信号被创建,但在 QLabel 没有该信号的情况下,我们可以使用 mousePressEvent 事件生成该信号,如下所示:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Label(QLabel):
clicked = pyqtSignal()
def mousePressEvent(self, event):
self.clicked.emit()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = Label("click me")
w.clicked.connect(lambda: print("clicked"))
w.show()
sys.exit(app.exec_())
我正在使用基于 PyQt4 的 PyQt。我正在使用 PyCharm 2017.3。我的 python 版本是 3.4。
我正在尝试连接单击鼠标以从 QLineEdit 捕获内容时获得的信号。
class HelloWorld(QMainWindow, tD_ui.Ui_MainWindow):
# defining constructor
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.getContent()
self.putValues()
self.setWindowTitle("Downloader")
self.pushButton.mousePressEvent.connect(self.getContent)
因此,当我 运行 出现 code.The 以下错误时
Traceback (most recent call last):
File "C:/Project/Downloader/Implement.py", line 113, in <module>
helloworld = HelloWorld()
File "C:/Project/Downloader/Implement.py", line 18, in __init__
self.pushButton.mousePressEvent.connect(self.getContent)
AttributeError: 'builtin_function_or_method' object has no attribute 'connect'
P.S-> 请尽量避免解决方案中的遗留代码
mousePressEvent
不是信号,所以你不应该使用连接,你应该使用 clicked
信号:
self.pushButton.clicked.connect(self.getContent)
加上:
在Qt中,因此对于PyQt来说,有信号和事件,信号被发出,事件必须被覆盖,在按钮的情况下,被点击的任务是自然的和固有的逻辑,所以这个信号被创建,但在 QLabel 没有该信号的情况下,我们可以使用 mousePressEvent 事件生成该信号,如下所示:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Label(QLabel):
clicked = pyqtSignal()
def mousePressEvent(self, event):
self.clicked.emit()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = Label("click me")
w.clicked.connect(lambda: print("clicked"))
w.show()
sys.exit(app.exec_())