QLabel,删除边框和背景

时间:2019-05-27 13:25:11

标签: c++ qt

我有grep的几个实例,我希望这些实例没有边框或背景色。我尝试了以下方法:

new EvMySchedAdapter(dayList, EvMySchedDlg.this);

我还尝试将样式表参数更改为:

interface IMyInterface {
  a: string;
  b: string;
  c: number;
  // and more...
}

class MyClass<T extends IMyInterface> { // or whatever interface you want
  public data: T;

  constructor(opt: T) {
    this.data = opt;
  }
}

和:

QLabel

这些都不起作用。我正在使用基于Qt 5.5.1(GCC 5.2.1 20151129,32位)的Qt Creator 3.5.1

在Qt版本上,我没有选择ACR890手机SDK的一部分。

[编辑]要解决对齐问题,请使用Qt特定的CSS分配:

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();

引号,更重要的是管道很重要。

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

1 个答案:

答案 0 :(得分:1)

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