Change the value of the progress bar from a class other than my GUI class PyQt4

前端 未结 1 1193
没有蜡笔的小新
没有蜡笔的小新 2021-01-21 13:27

I have a GUI class created by Qt designer in which i have a progress bar, and another class in which all the number crunching is done during which i want my progress bar to upda

相关标签:
1条回答
  • 2021-01-21 13:56

    gui.Ui_mainLayout is not an instantiated class but a 'type' object (an object that can be instantiated - see here for a good overview). gui.Ui_mainLayout.progressBar is not going to exist as its created when setupUi is run.

    Try passing progressBar to RunProgram explicitly:

    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()
    

    and

    class RunProgram:
        def __init__(self, progressBar):
            something = someMaths
            progressBar.setValue(something)
    

    I think that will work, but I suggest in future posting a minimal example you expect to run that can form the basis of the explanation.

    0 讨论(0)
提交回复
热议问题