在QStatusBar()
中不存在addStretch()
我需要第三个QWidget
始终位于右端。
你好吗?
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class MyMainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setCentralWidget(QLabel("main widget"))
statusBar = QStatusBar()
self.setStatusBar(statusBar)
statusBar.addWidget(QLabel("message left 1"))
statusBar.addWidget(QLabel("message left 2"))
statusBar.addWidget(QLabel("message to right end")) #???
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
谢谢!
答案 0 :(得分:4)
QStatusBar
类有一个addPermanentWidget
方法,从右边开始添加。
所以你可以简单地改变:
statusBar.addWidget(QLabel("message to right end"))
为:
statusBar.addPermanentWidget(QLabel("message to right end"))
请注意,永久窗口小部件的行为与添加到状态栏的普通窗口小部件不同。例如,它们不会被消息遮挡。
一个不同但又丑陋的解决方案是将一个小部件添加到QStatusBar
并进行大扩展,以便覆盖所有条形图,并将小部件添加到此布局中。