1

Python 3.1 と PyQt を使用して、QProgressBar を取得して、ウィジェット上でバーをスライドさせることでタスクが機能していることを表示しようとしています。最小値と最大値を 0 に設定することで実行できることがわかりました。

正しく動作するようになりましたが、プログラムに統合すると、ウィジェットの最初の 25% にのみバーが表示され、最初にリセットされます。私は何時間も遊んで、ドキュメントストリングに絞り込んだと思います。一番下にコード。

コードを初めて実行すると、プログレス バーが正しく機能します。ただし、その後はいつでも機能しません。.pyc ファイルを削除すると、初回のみ再び機能します。

def testfunction の docstring の 2 行目にある最後の文字 "j" を削除するか、docstring 全体を削除すると、常に機能します。毎回。

私が見逃している愚かなことはありますか?コードを適切に実行できるようにするためだけに、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"))

4

1 に答える 1

0

同じことが起こるのを見て、ウィンドウのサイズを少し変更することで修正できました。

クレイジーに聞こえますが、私にとってはうまくいきました。それがあなたにとってもうまくいくかどうか知りたいです。ウィンドウのサイズが変更されると、実行時にバーが期待どおりに機能することに気付き、ウィンドウの初期サイズを設定する試行錯誤の数分後、すべてが期待どおりに機能し、それ以来問題は見られませんでした。おそらくQtのバグだと思いますか?

于 2011-03-07T00:56:19.590 に答える