0

私が取り組んでいるPythonのアプリケーションでは、QT 4.7でスライドするprogressBarを表示する必要がありますが、それはできますが、QmessageBoxが見える範囲でのみスライドしています。非常に面倒です。さまざまな方法で試しましたメッセージボックスなしでスライドさせ続けても成功しませんでした。インターネット上でそれについて何も見つかりませんでした。これはバーを表示するための私のコードです:

    d=QtGui.QMainWindow()
    screen = QtGui.QDesktopWidget().screenGeometry()
    size =  self.progressBar.geometry()
    self.progressBar.move((screen.width()/2)-size.width()/2,(screen.height()/2)-size.height()-100)
    self.progressBar.show()

それを動かすには、これを追加する必要があります:

        d=QtGui.QMainWindow()
        infoString="sto creando mmasgisDB!"
        QtGui.QMessageBox.information(d,"Info", infoString)

[OK] ボタンをクリックするとすぐに、バーがフリーズします。ですから、QMainWindow に関連して私が知らないことがあると思います。もっと専門家の助けが必要です。

4

2 に答える 2

0

ウィジェットを別のウィジェット内で正しく表示する場合は、ウィジェットをレイアウトに追加する必要があります。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import sip
sip.setapi('QString', 2)
sip.setapi('QVariant', 2)

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class windowSlider(QMainWindow):
    def __init__(self, parent=None):
        super(windowSlider, self).__init__(parent)

        self.centralwidget = QWidget(self)

        self.progressBar = QProgressBar(self.centralwidget)
        self.progressBar.setValue(24)

        self.horizontalSlider = QSlider(self.centralwidget)
        self.horizontalSlider.setOrientation(Qt.Horizontal)

        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.addWidget(self.progressBar)
        self.verticalLayout.addWidget(self.horizontalSlider)

        self.setCentralWidget(self.centralwidget)

if __name__ == "__main__":
    import  sys

    app = QApplication(sys.argv)
    main = windowSlider()
    main.show()
    sys.exit(app.exec_())
于 2012-12-24T13:54:41.770 に答える
0

メインウィンドウで行ったように、を作成QMessageBoxして変数に割り当てようとしましたか。そして、QMessageBox.setInformation()必要な文字列を設定します。その後、試してみてくださいQMessageBox.execute()

また、QMessageBox のメカニズムをactivate()試すこともできます。show()PyQTでも同じように機能することを願っています。

于 2012-12-24T08:38:38.010 に答える