[Сниппеты Qt] Кнопка с фиксацией

Дмитрий Филатов
Кнопку с фиксацией в Qt сделать очень просто: для этого нужно использовать компонент QPushButton с включённым свойством checkable (в Qt Creator задаётся в разделе QAbstractButton свойств элемента). Чтобы определить текущее состояние кнопки (зажата или отжата), следует анализировать сигнал toggled. Вот пример работы с фиксированной кнопкой.

Кнопка с фиксацией в Qt

...

ui->pushButton->setCheckable(true);

connect(ui->pushButton, SIGNAL(toggled(bool)), this, SLOT(ButtonToggled(bool)));

...

void MainWindow::ButtonToggled(bool state){
if(state){
//Кнопка зажата
...
}else{
//Кнопка отжата
...
}
}

Один клик по кнопке переведёт её в одно состояние и зафиксирует в нём.
2015-08-25