Меню

Как qlabel установить цвет



QLabel: установить цвет текста и фона

Как задать цвет текста и фона QLabel ?

6 ответов

Лучшим и рекомендуемым способом является использование лист стилей Qt.

Чтобы изменить цвет текста и цвет фона QLabel , вот что я бы сделал :

Вы могли бы также избежать, используя таблицы стилей Qt и изменение цвета QPalette вашего QLabel , но вы можете получить разные результаты на разных платформах и/или стилей.

Как Qt документации :

с помощью QPalette это’т гарантированно работает для всех стилей, потому что авторы стиле ограничиваются разных платформ’ принципы и родная тема двигателя.

Но вы могли бы сделать что-то вроде этого :

Но как я уже сказал, я настоятельно рекомендую не использовать палитру и перейти на лист стилей Qt.

Я с помощью setStyleSheet() метод, и по крайней мере в Qt 4.4 он заканчивает призывом подключиться и в таблице стилей, материалов и вызывая увеличение использования памяти.

Я открыл отчет об ошибке о повышении уровня использования памяти, который можно найти здесь.

Цвет атрибута является неэффективным. Только через HTML в . я был в состоянии установить цвет шрифта (на белый в этом случае.

Есть ли способ задать значение по умолчанию (текст) цвет пользователя’с рабочего стола? Используя цвет: ; как ‘сброса’ кажется, это сделать, но это хорошая практика, или есть ли лучший способ?

Вы можете использовать QPalette, однако вы должны установить setAutoFillBackground(true); в , чтобы включить цвет фона

Она отлично работает на Windows и Ubuntu, я не’т играть с любой другой ОС.

Примечание: пожалуйста, см. QPalette, раздел цвет роли для более подробной информации

Это самый важный элемент любого подхода (за исключением таблицы стилей.)

Спасибо за указывая на то, что autoFillBackground является ключевым вопросом. Принятый ответ выше не работает без этого параметра.

Я добавляю этот ответ, потому что я думаю, что это может быть полезным для всех.

Я шаг в Проблема параметр широко цвета (то есть цвета RGB с Альфа-значением для прозрачности) для цветного отображения меток в мою картину приложения.

Как я наткнулся на первый ответ, я не смог настроить цвета в формате RGBA. Я тоже пробовал такие вещи, как:

где цвет-это цвет формата RGBA.

Итак, мой грязный раствор, чтобы продлить QLabel и заменить событию paintevent (метод) заполнение его ограничивающий прямоугольник.

Сегодня, я’вэ открыть `qт-помощник и прочитайте ссылка тип свойства список. Affortunately, это был пример, который гласит следующее:

Вот откройте свой ум, делая что-то вроде кода ниже, в качестве примера:

Обратите внимание, что setAutoFillBackground Set() в ложно` не сделает его работу.

Источник

QLabel: установить цвет текста и фона

Как установить цвет текста и фона QLabel ?

6 ответов

лучший и рекомендуемый способ-использовать Таблица Стилей Qt.

изменить цвет текста и цвет фона QLabel , вот что я бы сделал :

вы также можете избежать использования таблиц стилей Qt и изменить QPalette цвета QLabel , но вы можете получить разные результаты на разных платформах и/или стилей.

как говорится в документации Qt:

использование QPalette не гарантируется для всех стилей, потому что авторы стилей ограничены руководящими принципами разных платформ и собственным движком темы.

но вы могли бы сделать что-то вроде этого :

Читайте также:  Красным цветом словно кровь нарисован силуэт

но, как я уже сказал, я настоятельно рекомендую не использовать палитру и перейти к таблице стилей Qt.

Вы можете использовать QPalette, однако вы должны установить setAutoFillBackground(true); включить цвет фона

Он отлично работает на Windows и Ubuntu, я не играл ни с какой другой ОС.

Примечание: пожалуйста, см. QPalette, цвет ролевой Раздел для более подробной информации

я добавляю этот ответ, потому что думаю, что он может быть полезен кому угодно.

Я вхожу в проблему настройки RGBA и цвета (то есть цвет RGB с Альфа-значением прозрачности) для цветных меток отображения в моем приложении рисования.

когда я наткнулся на первый ответ, я не смог установить цвет RGBA. Я также пробовал такие вещи, как:

здесь color является цветом RGBA.

Итак, мой грязное решение было продлить QLabel и заменить paintEvent() метод заполнения прямоугольника.

сегодня я открыл qt-assistant и читать список свойств ссылки на стиль. К сожалению, у него есть пример, который гласит следующее:

это открывает мой ум, делая что-то вроде кода ниже, в качестве примера:

отметим, что setAutoFillBackground() установить в False не сделает это работа.

лучший способ установить любую функцию относительно цветов любого виджета-использовать QPalette.

и самый простой способ найти то, что вы ищете, — открыть Qt Designer и установить палитру QLabel и проверить сгенерированный код.

единственное, что сработало для меня, это html.

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

следующий код изменяет цвет текста на основе параметров, передаваемых абонентом.

этот работает идеально

getColor() метод возвращает выбранный цвет. Вы можете изменить цвет метки с помощью stylesheet

Источник

Описание Класса QLabel
[модуль QtGui]

Виджет QLabel позволяет отображать текст или рисунок. Далее.

Свойства

Открытые Функции

Открытые Слоты

Дополнительные Унаследованные Члены

Подробное Описание

Виджет QLabel позволяет отображать текст или рисунок.

QLabel используется для отображения текста или рисунка. Не поддерживает никаких функций взаимодействия с пользователем. Визуальное поведение метки может быть задано различными способами. Метка может быть использована для задания мнемонических ключей для получения фокуса другими виджетами.

QLabel может содержать данные следующих типов:

Содержимое Установка
Простой текст Передать QString в setText().
Форматированный текст Передать QString, содержащий форматированный текст, в setText().
Пиксельная карта Передать QPixmap в setPixmap().
Анимация Передать QMovie а setMovie().
Число Передать int или double в setNum(), которая конвертирует число в простой текст.
Nothing Тоже самое, что и пустая строка простого текста. Значение по умолчанию. Вызвать clear().

Когда содержимое изменяется с помощью одной из этих функций, старое содержимое затирается.

Существует несколько способов настройки внешнего вида QLabel. Все настройки QFrame доступны для задания рамки виджета. Расположение содержимого внутри области виджета QLabel может быть отрегулировано с помощью setAlignment() и setIndent(). Можно задать перенос текстового содержимого по словам с помощью setWordWrap(). Например, следующий код создает утопленную панель с двустрочным текстом, расположенным в правом-нижнем углу (обе линии располагаются рядом с правым краем метки):

Читайте также:  Месячные грязного красного цвета причины

QLabel часто используется в качестве подписи интерактивного виджета. Для подобных случаев QLabel предоставлияет полезный механизм для добавления мнемонического сочетания клавиш (см. QKeysequence), которое при активизации установит фокус клавиатуры на другой виджет (может быть задано с помощью функции QLabel «buddy»). Например:

В данном примере, при нажатии пользователем Alt+P, фокус клавиатуры передается дружественному для метки элементу (QLineEdit). Если дружественный элемент будет являться кнопкой (наследовать QAbstractButton), вызов мнемонического сочетания клавиш будет аналогичным щелчку мышью по этой кнопке.

Метка в стиле Macintosh
Метка в стиле Plastique
Метка в стиле Windows XP

Описание Свойств

alignment : Qt::Alignment

Данное свойство содержит выравнивание содержимого метки.

indent : int

Данное свойство содержит отступ текста от края в пикселях.

Если метка отображает текст, то отступ располагается слева, если alignment() равно Qt::AlignLeft; справа, если alignment() равно Qt::AlignRight; сверху, если alignment() равно Qt::AlignTop; снизу, если alignment() равно Qt::AlignBottom.

Если затребованное пространство отрицательно или не установлено, то метка вычисляет требуемый отступ следующим образом: Если frameWidth() равно 0, то отступ будет равен 0. Если frameWidth() больше 0, то отступ будет равен половине ширины символа «x» в текущем font() виджета.

margin : int

Данное свойство содержит ширину краев.

Ширина краев — это расстояние от внутренней границы рамки до внешней границы содержимого.

По умолчанию ширина краев равна 0.

pixmap : QPixmap

Данное свойство содержит пиксельную карту метки.

Если пиксельная карта не была установлена, то возвращается пустая карта.

При установке пиксельной карты стирается все все ранее содержащееся в метке. Если было установлено горячее сочетание клавиш для дружественного элемента, оно также удаляется.

scaledContents : bool

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

Если масштабирование позволено и метка содержит пиксельную карту, то пиксельная карта будет растянута для того, чтобы заполнить все доступное пространство.

Данное свойство по умолчанию имеет значение false.

text : QString

Данное свойство содержит текст метки.

Если текст не был установлен, то возвращается пустая строка. При установке текста удаляется все ранее содержащееся в метке если оно не тоже самое.

В зависимости от установок формата, текст будет интерпретирован либо как простой текст, либо как форматированный; см. setTextFormat(). По умолчанию формат установлен как Qt::AutoText, т.е. QLabel будет пытаться автоматически распознать форматирование текста.

Если текст интрепретируется как простой текст и для метки задан дружественный элемент, то мнемоническое сочетание клавиш для дружественного элемента будет установлено в соответствии с новым текстом.

Если автоматическое изменение размера позволено, то метка сама поменяет размер.

Обратите внимание, что Qlabel хорошо подходит для отображения небольших форматированных документов, т.е. таких небольших документов, для которых заданы определенные значения (шрифт, цвет текста, цвет ссылок) из палитры метки и свойств шрифта. Для отображения больших документов, используйте QTextEdit в режиме «только чтение». QTextEdit при изменении размера меньше мерцает и может предоставить полосу прокрутки, если это необходимо.

textFormat : Qt::TextFormat

Данное свойство содержит формат текста метки.

Для получения информации о доступных значениях, см. описание перечисления Qt::TextFormat.

Читайте также:  Тюльпаны сорта тюльпанов желтого цвета

Формат по умолчанию равен Qt::AutoText.

wordWrap : bool

Данное свойство указывает, может ли метка переностиь текст по словам.

Если данное свойство равно true, то текст метки переносится, если необходимо, по словам; иначе не переносится вообще.

Описание Функций-Членов

QLabel::QLabel ( QWidget * parent = 0, Qt::WFlags f = 0 )

Создает пустую метку.

Аргументы родитель parent и флаги виджета f передаются в конструктор QFrame.

QLabel::QLabel ( const QString & text, QWidget * parent = 0, Qt::WFlags f = 0 )

Создает метку, отображающую текст text.

Аргументы родитель parent и флаги виджета f передаются в конструктор QFrame.

QLabel::

QWidget * QLabel::buddy () const

Возвращает дружественный элемент метки или, если в настоящий момент дружественный элемент не задан, то 0.

void QLabel::clear () [slot]

Удаляет содержимое метки.

QMovie * QLabel::movie () const

Возвращает указатель на объект анимации метки или, если анимация в настоящий момент не задана, то 0.

const QPicture * QLabel::picture () const

Возвращает картинку метки или, если в настоящий момент картинка не задана, то 0.

void QLabel::setBuddy ( QWidget * buddy )

Устанавливает buddy в качестве дружественного элемента для метки.

При нажатии пользователем горячего сочетания клавиш, указанного на данной метке, фокус ввода клавиатуры передается дружественному виджету.

В диалоге Вы можете создать два виджета для ввода данных и метку для каждого из них, и настроить компоновку так, что каждая метка будет находиться слева от своего виджета ввода данных (своего «дружественного элемента»), например:

В вышеприведенном коде, фокус передается полю Name, если пользователь нажимает Alt+N, и полю Phone, если пользователь нажимает Alt+P.

Чтобы не изменить ранее установленный дружественный элемент, вызывайте данную функцию с параметром buddy, равным 0.

void QLabel::setMovie ( QMovie * movie ) [slot]

Устанавливает в качестве содержимого метки объект анимации movie. Все, ранее содержащееся в метке, удаляется.

Горячее сочетание клавиш для дружественного элемента, если было установлено, удаляется.

Если для метки позволено автоматичесткое изменение размера, то метка сама меняет свой размер.

void QLabel::setNum ( int num ) [slot]

Устанавливает в качестве содержимого метки простой текст, содержащий строковое представление целого числа num. Все, ранее содержащееся в метке, удаляется. Ничего не далает, если строковое представление числа, такое же, как содержащийся в метке в настоящий момент текст.

Горячее сочетание клавиш для дружественного элемента, если было установлено, удаляется.

Если для метки позволено автоматичесткое изменение размера, то метка сама меняет свой размер.

void QLabel::setNum ( double num ) [slot]

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает в качестве содержимого метки простой текст, содержащий строковое представление числа с плавающей точкой num. Все, ранее содержащееся в метке, удаляется. Ничего не далает, если строковое представление числа, такое же, как содержащийся в метке в настоящий момент текст.

Горячее сочетание клавиш для дружественного элемента, если было установлено, удаляется.

Если для метки позволено автоматичесткое изменение размера, то метка сама меняет свой размер.

void QLabel::setPicture ( const QPicture & picture ) [slot]

Устанавливает в качестве содержимого метки картинку picture. Все, ранее содержащееся в метке, удаляется.

Горячее сочетание клавиш для дружественного элемента, если было установлено, удаляется.

Источник