PyQt QProgressBar не работает правильно из-за длины комментария строки Python? - PullRequest
1 голос
/ 06 марта 2011

Используя Python 3.1 и PyQt, я пытаюсь получить QProgressBar, чтобы показать, что задача работает, когда полосы перемещаются по виджету. Я обнаружил, что это можно сделать, установив минимальное и максимальное значения в 0.

Я заставил его работать должным образом, но затем при интеграции его в мою программу, полосы будут отображаться только в первых 25% виджета, а затем возвращаться к началу. Я играл много часов и думаю, что сузил это до строки документации. Код внизу.

Если я запускаю код в первый раз, индикатор выполнения работает правильно. Однако в любое время после этого это не работает. Если я удаляю файл .pyc, он снова работает только в первый раз.

Когда я удаляю последний символ, «j», во второй строке строки документации для def testfunction, или удаляю всю строку документации, тогда это всегда работает. Каждый раз.

Есть что-нибудь глупое, что я скучаю? Я не хочу менять строку документации только для того, чтобы иметь возможность правильно запускать код.

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

<code>class comment():
    def testfunction( self ):
        """
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijabcdefghij
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopq
        abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcde
        abcdefghijklmnopqrstuvwxyzabcdefghij
        """
        pass<br>
from PyQt4 import QtCore, QtGui
_fromUtf8 = lambda s: s<br>
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"))

1 Ответ

0 голосов
/ 07 марта 2011

Я видел, как произошло то же самое, и мне удалось это исправить, слегка изменив размер окна.

Звучит безумно, но у меня это сработало.Мне было бы интересно узнать, заставляет ли это работать на вас тоже.Я заметил, что панель работает, как и ожидалось, во время выполнения после изменения размера окна и после нескольких минут проб и ошибок установки начального размера окна, все это работало, как ожидалось, и с тех пор я не видел проблемыЯ думаю, может быть, ошибка в Qt?

...