2

我有一个由 Qt 设计器创建的 GUI 类,其中我有一个进度条,以及另一个类,其中完成了所有数字运算,在此期间我希望我的进度条定期更新。我认为我会这样做的方式是在另一堂课上做这样的事情:

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)

但显然,由于我没用,这不起作用,有人能指出我正确的方向吗?谢谢,麻烦您了

4

1 回答 1

1

gui.Ui_mainLayout不是实例化的类,而是“类型”对象(可以实例化的对象 - 请参阅此处以获得良好的概述)。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)

认为这会起作用,但我建议将来发布一个您希望运行的最小示例,该示例可以构成解释的基础。

于 2011-06-20T18:57:17.667 回答