Текст поверх QAction на QToolBar |
Здравствуйте, гость ( Вход | Регистрация )
Текст поверх 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 для элемента и использовать конкретную иконку для него. Я бы выбрала первый вариант. |
|
|
Текстовая версия | Сейчас: 26.11.2024, 14:51 |