如何使 QLabel 的边框看起来像 QTreeWidget 等其他小部件的边框?
How to make border of QLabel look like border of other widgets like QTreeWidget?
我注意到 QTreeWidget 和 QLabel 的边框样式不同 - 即使我尝试调整样式表。当然,我可以更改两者的样式表,但理想情况下我想保留 QTreeWidget 的边框样式。如何让QLabel的边框看起来像QTreeWidget的边框?
MCVE 片段:
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_())
没有样式表:
结果 window MCVE 片段的屏幕截图:
我希望 window 看起来像什么:
您可能已经找到了答案,但以防万一...
以下应该能满足您的需求...
label = QLabel(self)
label.setFrameShape(QFrame.Panel)
label.setFrameShadow(QFrame.Sunken)
label.setLineWidth(3)
我刚刚设置了线宽。请注意,"border: 1px" 说明符 必须 从样式 sheet 中删除,否则它将优先于指定的线宽使用。完整的代码是...
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_())
我注意到 QTreeWidget 和 QLabel 的边框样式不同 - 即使我尝试调整样式表。当然,我可以更改两者的样式表,但理想情况下我想保留 QTreeWidget 的边框样式。如何让QLabel的边框看起来像QTreeWidget的边框?
MCVE 片段:
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_())
没有样式表:
结果 window MCVE 片段的屏幕截图:
我希望 window 看起来像什么:
您可能已经找到了答案,但以防万一...
以下应该能满足您的需求...
label = QLabel(self)
label.setFrameShape(QFrame.Panel)
label.setFrameShadow(QFrame.Sunken)
label.setLineWidth(3)
我刚刚设置了线宽。请注意,"border: 1px" 说明符 必须 从样式 sheet 中删除,否则它将优先于指定的线宽使用。完整的代码是...
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_())