Qprogressbar停止滑动

时间:2012-12-24 05:50:06

标签: python pyqt

对于我正在使用的Python应用程序,我需要用QT 4.7来显示一个滑动progressBar,我可以做到,但它只是滑动到目前为止QmessageBox可见,它非常令人着迷,我试过很多不使用messageBox保持滑动的不同方法没有任何成功,我在互联网上没有找到任何关于它的内容;这是我显示条形码的代码:

    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相关的东西,我需要更专家的帮助。

2 个答案:

答案 0 :(得分:0)

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

您也可以尝试QMessageBox的activate()show()机制。我希望它对PyQT也一样。

答案 1 :(得分: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_())