我有一个由 Qt 设计器创建的 GUI 类,其中我有一个进度条,另一个类中所有的数字运算都已完成,在此期间我希望我的进度条定期更新。我想我会这样做的方式是在其他类(class)做这样的事情:
gui.progressbar.setValue(some%)
但我似乎无法做到这一点。 gui 类的代码类似于:
from PyQt4 import QtCore, QtGui
from Run import RunProgram
class Ui_mainLayout(QtGui.QWidget):
def setupUi(self, mainLayout):
mainLayout.setObjectName(_fromUtf8("mainLayout"))
def setLayout():
self.basic_tab = QtGui.QWidget()
self.progressBar = QtGui.QProgressBar(self.basic_tab)
setLayout()
RunProgram()
我当时希望能够做这样的事情:
import gui
class RunProgram:
def __init__(self):
something = someMaths
gui.Ui_mainLayout.progressBar.setValue(something)
但很明显,因为我没用,所以这行不通,有人能给我指出正确的方向吗?请,谢谢
请您参考如下方法:
gui.Ui_mainLayout 不是一个实例化的类,而是一个“类型”对象(一个可以实例化的对象 - 请参阅 here 以获得很好的概述)。 gui.Ui_mainLayout.progressBar 不会像在 setupUi 运行时创建的那样存在。
尝试将 progressBar 显式传递给 RunProgram:
from PyQt4 import QtCore, QtGui
from Run import RunProgram
class Ui_mainLayout(QtGui.QWidget):
def setupUi(self, mainLayout):
mainLayout.setObjectName(_fromUtf8("mainLayout"))
def setLayout():
self.basic_tab = QtGui.QWidget()
self.progressBar = QtGui.QProgressBar(self.basic_tab)
setLayout(self.progressBar)
RunProgram()
和
class RunProgram:
def __init__(self, progressBar):
something = someMaths
progressBar.setValue(something)
我认为这会起作用,但我建议将来发布一个您期望运行的最小示例,它可以构成解释的基础。
