使用“statusBar.addPermanentWidget()”时如何删除小部件之间的分隔线?

art*_*son 4 python pyqt python-3.x pyqt5 qstatusbar

是否可以删除使用添加到状态栏的两个小部件之间的分隔线.addPermanentWidget()?我怀疑这是可能的,但我还没有真正找到任何关于如何进行的文献。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QStatusBar, QLabel


class MainWindow(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)

        statusBar = QStatusBar()
        self.setStatusBar(statusBar)
        statusBar.addPermanentWidget(QLabel("Label: "))
        statusBar.addPermanentWidget(QLabel("Data"))


app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

art*_*son 6

为了删除两个元素之间的分隔线,您需要QStatusBar::item在 Qt Creator 或项目源中设置样式表。

Qt 创建器示例:

在此输入图像描述

项目来源示例:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QStatusBar, QLabel


class MainWindow(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)

        statusBar = QStatusBar()

        statusBar.setStyleSheet('QStatusBar::item {border: None;}')

        self.setStatusBar(statusBar)
        statusBar.addPermanentWidget(QLabel("Label: "))
        statusBar.addPermanentWidget(QLabel("Data"))


app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)