Я создаю приложение, которое должно работать на настольных и некоторых мобильных платформах.Перетаскивание радио кнопки выполняет действие, но не устанавливает проверку
В следующем примере создаются и соединяются мои портретные/альбомные кнопки в группе с слотом на сигнале деблокирования.
m_landscapeRadio = new QRadioButton(QObject::tr("Landscape "));
m_portraitRadio = new QRadioButton(QObject::tr("Portrait "));
m_orientationGroup.addButton(m_landscapeRadio, 0);
m_orientationGroup.addButton(m_portraitRadio, 1);
m_orientationGroup.setExclusive(true);
m_landscapeRadio->setChecked(true);
connect(&m_orientationGroup, SIGNAL(buttonReleased(int)), this, SLOT(orientationSlot(int)));
Но я обнаружил странную ситуацию:
Предположим, кнопка пейзаж проверяется. Если я нажимаю и перетягиваюсь от переключателя «Портрет», выполняется действие слота (для параметра «Портрет»), но кнопка «Портрет» не проверяется.
Хотелось бы, чтобы действие не выполнялось.
Сейчас ...
В orientationSlot
я проверить аргумент и установить проверяемое значение, сам ... Хотя я действительно ожидал, что кнопки, чтобы знать, чтобы сделать это самостоятельно.
Но я думаю, что пользователи ожидают, что если нажать кнопку и передумать, чтобы утащить от кнопки и не выполнить действие.
Я избегаю сигнала с переключением(), поскольку кнопки могут быть установлены через код. – Thalia
Я добавил пример группы кнопок. Вы должны каким-то образом распознать отдельную кнопку. Возможно использование метода text(). – AlexanderVX
Спасибо - я только что понял, я могу сравнить значение, отправленное группой с помощью кнопки, и посмотреть, действительно ли она проверена. Если нет, я отброшу действие. Он становится уродливым с группой кнопок с множеством кнопок ... – Thalia