1

使用 Python 3.1 和 PyQt,我试图让 QProgressBar 通过让条在小部件上滑动来显示任务正在运行。我发现可以通过将最小值和最大值设置为 0 来完成。

我让它正常工作,但是当它集成到我的程序中时,条形图只会显示在小部件的前 25% 中,然后重置回开始。我玩了好几个小时,我想我已经把它缩小到一个文档字符串。代码在底部。

如果我第一次运行代码,进度条可以正常工作。但是,在那之后的任何时候它都不起作用。如果我删除 .pyc 文件,那么它只会在第一次再次工作。

当我删除 def testfunction 文档字符串第二行的最后一个字符“j”或删除整个文档字符串时,它总是有效的。每次。

有什么愚蠢的我想念的吗?我不想为了能够正确运行代码而更改我的文档字符串。

主文件

import sys
from PyQt4 import QtGui

from mainUI import Ui_Form
import comment

class mainForm(QtGui.QDialog):
    def __init__( self, parent=None ):
        QtGui.QWidget.__init__( self, parent )
        self.ui = Ui_Form()
        self.ui.setupUi( self )


if __name__ == "__main__":
    app = QtGui.QApplication( sys.argv )
    myapp = mainForm()
    myapp.show()
    sys.exit( app.exec_() )

主界面.py

class comment():
    def testfunction( self ):
        """
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijabcdefghij
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopq
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcde
        abcdefghijklmnopqrstuvwxyzabcdefghij
        """
        pass
from PyQt4 import QtCore, QtGui _fromUtf8 = lambda s: s
class Ui_Form(object): def setupUi(self, Form): Form.resize(206, 100) self.pgbTotalProgress = QtGui.QProgressBar(Form) self.pgbTotalProgress.setGeometry(QtCore.QRect(20, 30, 191, 23)) self.pgbTotalProgress.setMaximum(0) self.pgbTotalProgress.setProperty(_fromUtf8("value"), 0) self.pgbTotalProgress.setObjectName(_fromUtf8("pgbTotalProgress"))

4

1 回答 1

0

我已经看到同样的事情发生并设法通过稍微调整窗口大小来解决它。

这听起来很疯狂,但它对我有用。我很想知道它是否也能让你工作。一旦窗口被调整大小,我注意到栏在运行时按预期工作,经过几分钟的试验和错误设置窗口的初始大小,它都按预期工作,从那以后我没有看到问题。我在想可能是Qt中的一个错误?

于 2011-03-07T00:56:19.590 回答