如何将垂直separators添加到statusbar?(Red arrows)在这个屏幕截图。
separators
statusbar
(Red arrows)
如果我成功了,我如何显示选定的Line和Column?(Blue arrows)在同一个屏幕截图。这是Windows的。
Line
Column
(Blue arrows)
eivgtgni1#
void QStatusBar::addPermanentWidget(QWidget *widget,int stretch = 0)将给定的小部件永久添加到此状态栏,如果它不是此QStatusBar对象的子对象,则重新设置小部件的父级。stretch参数用于在状态栏变大和缩小时计算给定小部件的合适大小。默认拉伸因子为0,即为小部件提供最小空间。
import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QStatusBar, QLabel, QPushButton, QFrame) class VLine(QFrame): # a simple VLine, like the one you get from designer def __init__(self): super(VLine, self).__init__() self.setFrameShape(self.VLine|self.Sunken) class MainWindow(QMainWindow): def __init__(self): super().__init__() self.statusBar().showMessage("bla-bla bla") self.lbl1 = QLabel("Label: ") self.lbl1.setStyleSheet('border: 0; color: blue;') self.lbl2 = QLabel("Data : ") self.lbl2.setStyleSheet('border: 0; color: red;') ed = QPushButton('StatusBar text') self.statusBar().reformat() self.statusBar().setStyleSheet('border: 0; background-color: #FFF8DC;') self.statusBar().setStyleSheet("QStatusBar::item {border: none;}") self.statusBar().addPermanentWidget(VLine()) # <--- self.statusBar().addPermanentWidget(self.lbl1) self.statusBar().addPermanentWidget(VLine()) # <--- self.statusBar().addPermanentWidget(self.lbl2) self.statusBar().addPermanentWidget(VLine()) # <--- self.statusBar().addPermanentWidget(ed) self.statusBar().addPermanentWidget(VLine()) # <--- self.lbl1.setText("Label: Hello") self.lbl2.setText("Data : 15-09-2019") ed.clicked.connect(lambda: self.statusBar().showMessage("Hello ")) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
1条答案
按热度按时间eivgtgni1#
void QStatusBar::addPermanentWidget(QWidget *widget,int stretch = 0)
将给定的小部件永久添加到此状态栏,如果它不是此QStatusBar对象的子对象,则重新设置小部件的父级。stretch参数用于在状态栏变大和缩小时计算给定小部件的合适大小。默认拉伸因子为0,即为小部件提供最小空间。