gpt4 book ai didi

c++ - QLabel,去除边框和背景

转载 作者:行者123 更新时间:2023-11-30 04:47:15 27 4
gpt4 key购买 nike

我有几个 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 手机的 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 中,没有背景或框架(默认情况下)。

关于c++ - QLabel,去除边框和背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56327000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com