如何将 QWidget() 放在 QStatusBar() 的右端
How to place QWidget() at right end in QStatusBar()
在 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_())
谢谢!
QStatusBar
class has an addPermanentWidget
从右边开始添加的方法
所以你可以简单地改变:
statusBar.addWidget(QLabel("message to right end"))
至:
statusBar.addPermanentWidget(QLabel("message to right end"))
请注意,永久小部件的行为不同于添加到状态栏的普通小部件。例如,它们不会被消息遮挡。
一个不同但丑陋的解决方案是将一个小部件添加到 QStatusBar
并进行大拉伸,以便它覆盖所有栏,并将该小部件添加到这个小部件的布局中。
在 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_())
谢谢!
QStatusBar
class has an addPermanentWidget
从右边开始添加的方法
所以你可以简单地改变:
statusBar.addWidget(QLabel("message to right end"))
至:
statusBar.addPermanentWidget(QLabel("message to right end"))
请注意,永久小部件的行为不同于添加到状态栏的普通小部件。例如,它们不会被消息遮挡。
一个不同但丑陋的解决方案是将一个小部件添加到 QStatusBar
并进行大拉伸,以便它覆盖所有栏,并将该小部件添加到这个小部件的布局中。