使用Python 3.1和PyQt,我试图通过让小节在小部件上滑动来获得QProgressBar以显示任务正在工作。我发现可以通过将最小值和最大值设置为0来完成。
我让它正常工作,但是当它集成到我的程序中时,条形图只会显示在窗口小部件的前25%中,然后重置回到开头。我玩了好几个小时,我想我已经把它缩小到了一个文档。代码在底部。
如果我是第一次运行代码,则进度条正常工作。但是,任何时候之后它都无法正常工作。如果我删除了.pyc文件,那么它仅在第一次再次工作。
当我在def testfunction的docstring的第二行删除最后一个字符“j”,或删除整个docstring时,它总是有效。每一次。
我有什么愚蠢的错过吗?我不想为了能够正确运行代码而改变我的文档字符串。
main.py
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_() )
mainUI.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"))
答案 0 :(得分:0)
我已经看到同样的事情发生了,并设法通过稍微调整窗口来修复它。
这听起来很疯狂,但它对我有用。我有兴趣知道它是否也能使你的工作成功。我注意到在窗口调整大小后运行期间条形图正常工作,经过几分钟的试验和错误设置窗口的初始大小,它都按预期工作,我从未见过问题。我想也许是Qt中的一个错误?