我是python类的初学者,并且我对此代码有一点问题(这是pyqt代码)。从另一个文件调用了 globalprogress 函数,但是当他调用函数 UpdateBar 时,我的计算机不断告诉我“ Ui_IA对象没有属性'progression'”。 em>”,但事实并非如此。
有人知道我在这里做错了吗? 谢谢。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_IA(object):
def setupUi(self, IA):
IA.setObjectName("IA")
IA.resize(931, 570)
self.centralWidget = QtWidgets.QWidget(IA)
self.centralWidget.setObjectName("centralWidget")
self.progression = QtWidgets.QProgressBar(self.centralWidget)
self.progression.setGeometry(QtCore.QRect(50, 450, 831, 61))
self.progression.setProperty("value", 0)
self.progression.setObjectName("progression")
def UpdateBar(self):
self.progression.setValue(percentage)
def globalprogress(number):
global percentage
UIIA = Ui_IA()
percentage = int(number)
UIIA.UpdateBar()
答案 0 :(得分:0)
默认情况下不调用其中设置了progress属性的setupUI()函数。您可以使用__init__()
,该方法将在实例化该类(即创建该类的对象)后立即自动运行,或强制setupUI()在globalprogress()函数中运行。
答案 1 :(得分:0)
在执行setupUi()
之前,必须在UIIA
对象上调用UpdateBar()
。
答案 2 :(得分:0)
尝试一下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_IA(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(931, 570)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.progression = QtWidgets.QProgressBar(self.centralWidget)
self.progression.setGeometry(QtCore.QRect(50, 450, 831, 61))
self.progression.setProperty("value", 0)
self.progression.setObjectName("Progression")
MainWindow.setCentralWidget(self.centralWidget)
def UpdateBar(self, MainWindow, percentage=0):
self.progression.setValue(percentage)
self.progression.show()
def globalprogress(number):
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_IA()
ui.setupUi(MainWindow)
MainWindow.show()
ui.UpdateBar(MainWindow, number)
sys.exit(app.exec_())
if __name__ == "__main__":
globalprogress(55)