C++ QLabel,删除边框和背景

C++ QLabel,删除边框和背景,c++,qt,C++,Qt,我有几个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%)

我有几个
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%);}");
以及:

这些都不管用。我正在使用QtCreator 3.5.1,基于Qt5.5.1(GCC 5.2.1 20151129,32位)

我对Qt版本没有选择,它是ACR890手机SDK的一部分

[编辑]要修复对齐,请使用Qt特定的CSS分配:

     qproperty-alignment: 'AlignVCenter | AlignCenter';
引用和更重要的管道都很重要


通过给QLabel构造函数一个父对象来解决删除边框的问题,它不是一个可见的CSS边框,每个标签都呈现为一个没有父对象的窗口。

如果您希望您的
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
中,默认情况下没有背景或边框。

您指的是可见边框(如在其周围绘制的框)还是仅显示边距?QLabel没有边框。还有,当你说“去除背景色”时,你的确切意思是什么?@NikosC。我想要的是标签在渲染时不带边框、边框或背景,因此它们在添加到的任何背景上都显示为文本。在我使用过的任何平台上,QLabel的默认行为完全符合您的要求。您确定边框/框架是由于
QLabel
本身而不是包含的小部件/布局造成的吗?这可能是因为QLabel是用新的QLabel()创建的,并且不与任何布局关联。
QLabel* plbl = new QLabel("foobar", parent);
// plbl->show(); // Useless. Done by the parent