![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
На QToolBar есть QAction с иконкой. Поверх иконки нужно выводить текст (цифры).
Это возможно? |
|
|
![]() |
BlueIceScream |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Для решения этой проблемы можно использовать 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 для элемента и использовать конкретную иконку для него. Я бы выбрала первый вариант. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.7.2025, 18:16 |