qt – 当Windows上的setRange(0,0)时,将文本放在QProgressBar的中间?

发布时间:2020-09-15 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了qt – 当Windows上的setRange(0,0)时,将文本放在QProgressBar的中间?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在 Windows上的setRange(0,0)中将文本(不仅仅是数字)放在QProgressBar的中间?

以下是PyQt示例,仍然无法按预期工作.

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

class MainWindow(QMainWindow):

    def __init__(self,parent=None):
        super(MainWindow,self).__init__(parent)
        self.resize(800,600)

#        self.lb=QLabel('finding resource   ')

        self.pb = QProgressBar()
        self.pb.setRange(0,0)

        self.pb.setAlignment(Qt.AlignCenter)
        self.pb.setFormat('finding resource...')
        self.pb.setStyleSheet("text-align: center;")

#        self.pb.setTextVisible(False)


        self.statusBar().setSizeGripEnabled(False)
#        print(self.statusBar().layout() )
        self.statusBar().setStyleSheet("QStatusBar::item {border: none;}")
        self.statusBar().addPermanentWidget(self.pb,1)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    ui = MainWindow()
    ui.show()
    sys.exit(app.exec_())

解决方法

vahancho在他的 answer中很好地解释了原因并提到覆盖QProgressBar.text().幸运的是,这在Python中很简单,我知道如何做到这一点.

from PySide import QtGui,QtCore

class MyProgressBar(QtGui.QProgressBar):
"""
    Progress bar in busy mode with text displayed at the center.
"""

    def __init__(self):
        super().__init__()
        self.setRange(0,0)
        self.setAlignment(QtCore.Qt.AlignCenter)
        self._text = None

    def setText(self,text):
        self._text = text

    def text(self):
        return self._text

app = QtGui.QApplication([])

p = MyProgressBar()
p.setText('finding resource...')
p.show()

app.exec_()

这是在Windows 7上.

顺便说一句.首先我想到了蛮力方法:在QProgressBar之上使用QLabel的QStackedLayout.这也应该始终有效.

总结

以上是编程之家为你收集整理的qt – 当Windows上的setRange(0,0)时,将文本放在QProgressBar的中间?全部内容,希望文章能够帮你解决qt – 当Windows上的setRange(0,0)时,将文本放在QProgressBar的中间?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!