我有几个实例的QLabel,我希望这些渲染没有边框或背景颜色。我尝试了以下几种方法:
plbl = new QLabel();
plbl->setGeometry(210, 0, 26, 16);
plbl->setAlignment(Qt::AlignRight);
plbl->setAlignment(Qt::AlignVCenter);
plbl->setStyleSheet("border: 0px; background-color:rgba(0,0,0,0%);");
plbl->show();我还尝试将样式表参数更改为:
plbl->setStyleSheet("QLabel {border: 0px; background-color:rgba(0,0,0,0%);}");和:
plbl->setFrameStyle(QFrame::NoFrame);这些都不起作用。我使用的是Qt Creator 3.5.1,基于Qt 5.5.1 (GCC 5.2.1 20151129,32位)
我没有选择Qt版本,它是ACR890手机软件开发工具包的一部分。
编辑要修复对齐,请使用Qt特定的CSS赋值:
qproperty-alignment: 'AlignVCenter | AlignCenter';引号和更重要的是管道很重要。
移除边框是通过给QLabel构造函数一个父级来解决的,它不是一个可见的CSS边框,每个标签都被渲染为一个没有父级的窗口。
发布于 2019-05-27 22:02:24
如果您希望QLabel本身是一个窗口,则需要移除窗口框架并设置正确的属性,以避免窗口管理器绘制背景。
例如:
QLabel* plbl = new QLabel("foobar");
plbl->setGeometry(210, 0, 26, 16);
plbl->setAlignment(Qt::AlignRight);
plbl->setAlignment(Qt::AlignVCenter);
plbl->setWindowFlag(Qt::FramelessWindowHint); // No frame
plbl->setAttribute(Qt::WA_NoSystemBackground); // No background
plbl->setAttribute(Qt::WA_TranslucentBackground);
plbl->show();标签将在屏幕上显示为文本。
如果要在另一个小部件中插入标签,则必须设置其父标签:
QLabel* plbl = new QLabel("foobar", parent);
// plbl->show(); // Useless. Done by the parent标签将在parent中显示,没有背景或框架(默认情况下)。
https://stackoverflow.com/questions/56327000
复制相似问题