2017-01-23 7 views
0

Я разрабатывал графический интерфейс и столкнулся с проблемой (или возможной ошибкой) с QCheckBox.qcheckbox не меняет статус проверки при нажатии на

Добавление компонента QCheckBox в мою форму, компиляция и запуск которого не имеют проблем. Однако при нажатии на этот флажок не отображается видимая обратная связь.

Я добавил слушателя для сигнала clicked(bool). Он используется в отладочном выходе для отображения текущего состояния, которое изменяется.

только 3 настройки изменены на флажке:

  1. Компонент Text
  2. Название компонента
  3. Компонент Checkedstate: Проверено.

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

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

Выход stateChanged(int) и clicked(bool) сигналов: (qDebug() выход)

QCHECKBOX STATE (stateChanged): "2" 
QCHECKBOX STATE (clicked): "checked" 
QCHECKBOX STATE (stateChanged): "0" 
QCHECKBOX STATE (clicked): "unchecked" 
QCHECKBOX STATE (stateChanged): "2" 
QCHECKBOX STATE (clicked): "checked" 
QCHECKBOX STATE (stateChanged): "0" 
QCHECKBOX STATE (clicked): "unchecked" 

Если какая-либо дополнительная информация проекта требуется, не стесняйтесь оставить комментарий

ответ

1

Вот можно решение для решения этой проблема с отсутствием проверки/отметки.

Я реализовал «индикатор индикатора CSS», который я получил от этого qt form post, что является проблематичным.

Источники раствора:

  • Док страница: here
  • Реализация: here

Пример реализации:

QPalette p = ui->checkBox->palette(); 
p.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255)); 
p.setColor(QPalette::Button, QColor(255, 255, 255)); 
ui->checkBox->setAutoFillBackground(true); 
ui->checkBox->setPalette(p); 

QColor(255, 255, 255) будет цветом фона, который вы желаете, например. цвет фона вашего окна.

QPallete::Active, QPalette::base относится к фону активного CheckBox (в белом фоне коробки)

и QPalette::Button относятся к «реальному фону» (за флажком и текстом флажка)

Надежда это помогает !

 Смежные вопросы

  • Нет связанных вопросов^_^