How to make border of QLabel look like border of other widgets like QTreeWidget?

fin*_*oot 2 python qt pyqt pyqt4 pyqt5

I noticed different border styles for QTreeWidget and QLabel - even if I try to adjust the stylesheet. Of course, I could change the stylesheet for both, but ideally I'd like to keep the QTreeWidget's border style. How can I make the border of QLabel look like the border of QTreeWidget?


MCVE snippet:

import sys
from PyQt5.QtWidgets import *

class widget(QWidget):
    def __init__(self):
        super().__init__()
        treewidget = QTreeWidget(self)
        label = QLabel(self)
        label.setStyleSheet("background-color: white; border: 1px inset grey; min-height: 200px;")
        grid = QGridLayout()
        grid.setSpacing(10)
        grid.addWidget(treewidget, 1, 0)
        grid.addWidget(label, 2, 0)
        self.setLayout(grid)
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    f = widget()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

Without stylesheet:

窗口默认值


Screenshot of resulting window for MCVE snippet:

窗口原样


What I want the window to look like:

根据需要开窗

G.M*_*.M. 5

您可能已经找到了答案,但以防万一……

以下应该为您提供您想要的...

label = QLabel(self)
label.setFrameShape(QFrame.Panel)
label.setFrameShadow(QFrame.Sunken)
label.setLineWidth(3)
Run Code Online (Sandbox Code Playgroud)

我刚刚硬连线线宽的地方。请注意,必须从样式表中删除“border: 1px”说明符,否则它将优先于指定的线宽使用。完整的代码将是...

import sys
from PyQt5.QtWidgets import *

class widget(QWidget):
    def __init__(self):
        super().__init__()
        treewidget = QTreeWidget(self)
        label = QLabel(self)
        label.setStyleSheet("background-color: white; inset grey; min-height: 200px;")
        label.setFrameShape(QFrame.Panel)
        label.setFrameShadow(QFrame.Sunken)
        label.setLineWidth(3)
        grid = QGridLayout()
        grid.setSpacing(10)
        grid.addWidget(treewidget, 1, 0)
        grid.addWidget(label, 2, 0)
        self.setLayout(grid)
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    f = widget()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)