LINUX.ORG.RU

C++, QT: QWidget::setEnabled сбрасывает состояние.


0

1

Есть QPushButton, которой поставлено

setDown( true );
кнопочка отображается нажатой. Делаем ей
setEnabled( false );
setEnabled( true );

и кнопочка забывает своё состояние нафиг. Это нормально? Может ей надо было какую-то фичу включить дополнительно ещё?

Нормальные люди делают QPushButton::setCheckable( true ) и получают включающуюся/выключающуюся кнопку. Но у меня не та ситуация - у меня есть группа кнопок с взаимо-зависимым состоянием: например нажатие одной должно гарантированно отжимать остальные. А если кликаешь по уже нажатой - ничего не должно происходить. Поэтому я и управляю состоянием кнопок вручную.

★☆

Последнее исправление: kiverattes (всего исправлений: 1)

void QAbstractButton::toggled ( bool checked ) [signal]

This signal is emitted whenever a checkable button changes its state. checked is true if the button is checked, or false if the button is unchecked.

This may be the result of a user action, click() slot activation, or because setChecked() was called.

The states of buttons in exclusive button _groups_ are updated before this signal is emitted. This means that slots can act on either the «off» signal or the «on» signal emitted by the buttons in the _group_ whose states have changed.

For example, a slot that reacts to signals emitted by newly checked buttons but which ignores signals from buttons that have been unchecked can be implemented using the following pattern:

Button _groups_ can be created using the QButtonGroup class, and updates to the button states monitored with the QButtonGroup::buttonClicked() signal.

http://qt-project.org/doc/qt-4.8/qabstractbutton.html#toggled

CrossFire ★★★★★
()
Ответ на: комментарий от arturpub

Вопрос не «чё делать». Вопрос в том, нормально ли описываемое поведение.

kiverattes ★☆
() автор топика

Да, нормально, задизейбленная кнопка сбрасывает состояние по задумке. Смирись и обойди.

E ★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ну так и сделано. Но вопрос был в другом - нормально ли описываемое поведение )

kiverattes ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.