Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/37: Рейтинг темы: голосов - 37, средняя оценка - 4.86
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235

Checkbox картинкой или кнопка с двумя состояниями

07.12.2012, 18:16. Показов 8050. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать кнопку с двумя состояниями как у chackbox (checked и unchecked). Кнопка должна быть картинкой. При состоянии checked картинка должна быть цветная, и ч/б в противоположном случае.
Подскажите как сделать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2012, 18:16
Ответы с готовыми решениями:

Кнопка BS_OWNERDRAW или кнопка со своей картинкой
Есть код, с помощью которого можно менять картинку при нажатии, при фокусе { // ownerdraw button static HBITMAP no_active; ...

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

Кнопка с картинкой
<a href='?dir=folder1' class='button'><img class='bico' src='images/add-folder.png'/>Открыть</a> .button { ...

7
43 / 21 / 5
Регистрация: 27.08.2012
Сообщений: 51
08.12.2012, 13:13
Мне кажется стоит использовать две картинки и ставить нужную в слоте обработки нажатия на checkbox

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
QIcon *colored;
QIcon *grey;
QCheckBox *chkButton = new QCheckBox();
connect(chkButton, SIGNAL(clicked(bool)), SLOT(onChkButtonClicked(bool)));
 
void onChkButtonClicked(bool checked)
{
    if (checked)
        chkButton->setIcon(*colored);
    else
        chkButton->setIcon(*grey);
}
0
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
09.12.2012, 15:23  [ТС]
А так она разве не будет устанавливаться рядом с квадратиком чекбокса?

Добавлено через 4 минуты
Интерфейс у приложения в десигнере сделан, можно ли как-то создать новый виджет на основе чекбокса или другого, чтобы получился необходимый эффект (кликабельная картинка) и можно было просто в десигнере все необхоимые QCheckbox заменить на него?
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
09.12.2012, 16:12
Цитата Сообщение от IgorGramotey Посмотреть сообщение
Мне кажется стоит использовать две картинки и ставить нужную в слоте обработки нажатия на checkbox

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
QIcon *colored;
QIcon *grey;
QCheckBox *chkButton = new QCheckBox();
connect(chkButton, SIGNAL(clicked(bool)), SLOT(onChkButtonClicked(bool)));
 
void onChkButtonClicked(bool checked)
{
    if (checked)
        chkButton->setIcon(*colored);
    else
        chkButton->setIcon(*grey);
}
Свойством checked обладает QAbstractButton, вследствие чего оно есть у QPushButton.
можно было просто в десигнере все необхоимые QCheckbox заменить на него?
Можно, читай мануал дизайнера.
0
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
09.12.2012, 17:05  [ТС]
Прижде чем заменить, надо сделать. В любом случае если бы вопрос решался мануалом, я бы так и поступил. Приведите пожалуйста пример как сделать такую кнопку
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
09.12.2012, 18:46
Цитата Сообщение от Damaks Посмотреть сообщение
Приведите пожалуйста пример как сделать такую кнопку
это тривиально
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyButton: public QPushButton
{
//....
protected:
virtual void nextCheckState()
{
 // обрабатываем при клике
}
virtual void checkStateSet()
{
 // обрабатываемым вызовы setChecked()
 
}
};
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
10.12.2012, 01:28
откройте для себя стили:
http://doc.qt.digia.com/qt/sty... mples.html
все, что вы хотите можно задать стилем и посетить этот стиль кнопке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 QCheckBox {
     spacing: 5px;
 }
 
 QCheckBox::indicator {
     width: 13px;
     height: 13px;
 }
 
 QCheckBox::indicator:unchecked {
     image: url(:/images/checkbox_unchecked.png);
 }
 
 QCheckBox::indicator:unchecked:hover {
     image: url(:/images/checkbox_unchecked_hover.png);
 }
 
 QCheckBox::indicator:unchecked:pressed {
     image: url(:/images/checkbox_unchecked_pressed.png);
 }
 
 QCheckBox::indicator:checked {
     image: url(:/images/checkbox_checked.png);
 }
 
 QCheckBox::indicator:checked:hover {
     image: url(:/images/checkbox_checked_hover.png);
 }
 
 QCheckBox::indicator:checked:pressed {
     image: url(:/images/checkbox_checked_pressed.png);
 }
 
 QCheckBox::indicator:indeterminate:hover {
     image: url(:/images/checkbox_indeterminate_hover.png);
 }
 
 QCheckBox::indicator:indeterminate:pressed {
     image: url(:/images/checkbox_indeterminate_pressed.png);
 }
0
Эксперт С++
 Аватар для Maxim Prishchepa
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
10.12.2012, 16:27
сли память не изменяет, в дизайнере в поле icon выстовляете иконки для разных действий и радуетесь жизни (при условии использования QPushButton и ежели с ними)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2012, 16:27
Помогаю со студенческими работами здесь

Кнопка с картинкой
Подскажите как сделать шаблон кнопки с картинкой, ничего рабочего не нашел Вот если что мой ResourceDictionary ...

Динамическая кнопка с картинкой
Всем привет, нужна помощь Сделал свою кнопку, с картинками, вставляю программно, но никак нимогу задать размер Помогите решить...

Кнопка с картинкой на WinApi
Исходник программы, показывающей пример создания стандартной системной кнопки с картинкой. Поддерживаются темы оформления для отрисовки....

Кнопка с картинкой png
Всем привет. Подскажите, как в билдере можно прицепить к кнопке .png файл? Поиск не дал результатов, ибо исключает png из запроса, а...

Кнопка facebook рядом с картинкой
доброго времени суток :) хочу добавить кнопку factbook - вопрос как сделать так чтобы справа от поделиться в окне facebook была...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru