0

对于我正在开发的 Python 应用程序,我需要使用 QT 4.7 显示一个滑动进度条,我可以做到,但它只能在 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)

一旦我单击“确定”按钮,该栏就会冻结。所以我认为有一些我不知道与 QMainWindow 相关的东西,我需要更多专家的帮助。

4

2 回答 2

0

您是否尝试过创建 aQMessageBox并将其分配给一个变量,就像您为主窗口所做的那样。然后QMessageBox.setInformation()设置你想要的字符串。之后你可以试试QMessageBox.execute()

您也可以尝试使用 QMessageBoxactivate()show()机制。我希望它对 PyQT 也一样。

于 2012-12-24T08:38:38.010 回答
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 回答