QLabel, удаление границы и фона - PullRequest
1 голос
/ 27 мая 2019

У меня есть несколько экземпляров 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, входящей в SDK для телефона ACR890.

[Редактировать] Чтобы исправить выравнивание, используйте заданное в Qt CSS-назначение:

     qproperty-alignment: 'AlignVCenter | AlignCenter';

Важны цитаты и, что более важно, труба.

Удаление границ было решено путем предоставления родителю конструктора QLabel, это не была видимая граница CSS, каждая метка отображалась как окно без родителя.

1 Ответ

1 голос
/ 27 мая 2019

Если вы хотите, чтобы 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 без фона или рамки (по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...