crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Текст поверх QAction на QToolBar
RazrFalcon
  опции профиля:
сообщение 25.11.2011, 22:27
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


На QToolBar есть QAction с иконкой. Поверх иконки нужно выводить текст (цифры).
Это возможно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BlueIceScream
  опции профиля:
сообщение 26.11.2011, 13:55
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 21.11.2011
Из: Республика Дагестан
Пользователь №: 3016

Спасибо сказали: 18 раз(а)




Репутация:   3  


Для решения этой проблемы можно использовать 2 метода:

1) Наследовать QToolBar и переопределить метод PaintEvent. Добавить в опции рисования виджета стиль Qt::ToolButtonTextOverIcon. Затем используя функцию setToolButtonStyle для определения стиля прорисовки в коде.

2) Не использовать QAction. Использовать QToolButton c определенным StyleSheet ' ом. Для вашей проблемы код будет выглядеть примерно так:


QToolBar * tb = new QToolBar(this);

QToolButton * tlb = new QToolButton(this);

tlb->setText("Acr 1");

tlb->setStyleSheet("background-image: url(:/<ваша иконка>); background-repeat: no-repeat; background-position: center center");

tb->addWidget(tlb);


Первый вариант предпочтительнее для долгосрочного использования и соответствует концепциям Qt. Он позволяет добавить дополнительный стиль рисования подконтрольных элементов QToolBar, с возможностью использования уже заранее определенных. Таким образом не меняя структуру интерфейса работы с QToolBar.

Второй вариант требует постоянного изменения в StyleSheet для задания необходимой картинки. Для этого можно наследовать класс QToolButton и добавить в нем функцию void setBgImage (QString bgImg), которая будет устанавливать общий StyleSheet для элемента и использовать конкретную иконку для него.

Я бы выбрала первый вариант.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 14:51