如何解决PyQt5 - QLabel 填充无法按预期工作
填充属性未按预期工作。
这是我的代码:
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 设置为零。因为如果 indent 属性的值等于 -1 或未设置,Qt 会添加额外的空间(取决于对齐方式)。
QLabel
{
qproperty-indent:0; /* without px or whatever*/
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。