PyQt5 - QLabel 填充不能按预期工作
PyQt5 - QLabel padding not work as expected
填充属性未按预期工作。
这是我的代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel
class Window(QWidget):
def __init__(self):
super().__init__()
self.setFixedSize(450, 450)
tracking_description = QLabel()
tracking_description.setStyleSheet('''
border: 2px solid;
border-radius: 8px;
padding-top: 0px;
padding-bottom: 0px;
padding-right: 10px;
padding-left: 10px;
''')
tracking_description.setText("Consente di scegliere una \
delle camere installate sul territorio e impostarla \
in <b>modalità tracciante</b>.<br />Durante questa fase \
il sistema osserverà i veicoli che transitano nella scena \
e <b>definirà in maniera automatica delle aree di \
parcheggio</b>.<br />\Propedeuticamente, sarà possibile \
definire le scene di osservazione che una specifica camerà \
dovrà gestire.")
tracking_description.setWordWrap(True)
tracking_description.setFixedWidth(408)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addWidget(tracking_description)
vbox.addStretch(1)
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addLayout(vbox)
hbox.addStretch(1)
self.setLayout(hbox)
if __name__ == "__main__":
app = QApplication(["TODO"])
win = Window()
win.show()
sys.exit(app.exec_())
如果我将tracking_description QLabel的padding-right
和padding-left
保留为10px,这是输出(也有意外的顶部和底部填充):
如果我将 padding-right
和 padding-left
设置为 30px,这是输出(预期顶部和底部填充为 0px):
为什么会出现这种行为?
如果在 QLabel 上设置 margin 和 padding 则必须将 indent 设置为零。因为如果缩进的值属性等于-1或者没有设置,Qt会额外添加space(取决于对齐方式)
QLabel
{
qproperty-indent:0; /* without px or whatever*/
}
填充属性未按预期工作。
这是我的代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel
class Window(QWidget):
def __init__(self):
super().__init__()
self.setFixedSize(450, 450)
tracking_description = QLabel()
tracking_description.setStyleSheet('''
border: 2px solid;
border-radius: 8px;
padding-top: 0px;
padding-bottom: 0px;
padding-right: 10px;
padding-left: 10px;
''')
tracking_description.setText("Consente di scegliere una \
delle camere installate sul territorio e impostarla \
in <b>modalità tracciante</b>.<br />Durante questa fase \
il sistema osserverà i veicoli che transitano nella scena \
e <b>definirà in maniera automatica delle aree di \
parcheggio</b>.<br />\Propedeuticamente, sarà possibile \
definire le scene di osservazione che una specifica camerà \
dovrà gestire.")
tracking_description.setWordWrap(True)
tracking_description.setFixedWidth(408)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addWidget(tracking_description)
vbox.addStretch(1)
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addLayout(vbox)
hbox.addStretch(1)
self.setLayout(hbox)
if __name__ == "__main__":
app = QApplication(["TODO"])
win = Window()
win.show()
sys.exit(app.exec_())
如果我将tracking_description QLabel的padding-right
和padding-left
保留为10px,这是输出(也有意外的顶部和底部填充):
如果我将 padding-right
和 padding-left
设置为 30px,这是输出(预期顶部和底部填充为 0px):
为什么会出现这种行为?
如果在 QLabel 上设置 margin 和 padding 则必须将 indent 设置为零。因为如果缩进的值属性等于-1或者没有设置,Qt会额外添加space(取决于对齐方式)
QLabel
{
qproperty-indent:0; /* without px or whatever*/
}