我正在pyqt5
项目中,在qt designer
中设计ui,并在pycharm
中编写其python代码。 Ui有一个按钮和标签。单击按钮后,标签值将更改。下面是代码:
import sys
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication, QMainWindow
class ROCKET(QMainWindow):
def __init__(self):
super(ROCKET, self).__init__()
loadUi('ui/gui.ui', self)
self.pushButton.clicked.connect(self.btn_click)
def btn_click(self):
self.label.setText("CLICKED")
app = QApplication(sys.argv)
window = ROCKET()
window.show()
app.exec_()
Pycharm为pushButton
和label
发出警告:
Unresolved attribute reference 'pushButton' for class 'ROCKET'
但是如果我运行代码,则输出正确。如何删除这些警告并使代码正确。
您可以将小部件称为主窗口的属性这一事实是PyQt5通过loadUi
提供的一种便利。 PyCharm抱怨是因为它没有看到您为类明确定义pushButton
属性。
您可以避免警告的一种方法是显式定义属性:
self.pushButton = self.findChild(QPushButton, "name_of_push_button")
self.pushButton.clicked.connect(self.btn_click)