先に結論
QPushButtonのcheckableプロパティをtrueにすればOK。
サンプル
ボタンを配置して、checkableにチェックを入れます。
左が非押下状態、右が押下状態。
スロット関数
配置したボタンを右クリック→「スロットへ移動」より、「clicked(bool)」または「toggled(bool)」を選ぶと、スロット関数が作成できます。
UI操作によってボタンを押下する場合、clicked(bool)もtoggled(bool)も同じように呼び出されます。
コードから操作する場合は、若干の違いがあります。
setChecked()
ui->pushButton->setChecked(true);
toggled(bool)は呼び出されるが、clicked(bool)は呼び出されない。
親ボタン「1」、子ボタン「1-1」「1-2」「1-3」があり、
1.親ボタンを押下すると、子ボタンを全て押下状態にする
2.親ボタンが押下されていない状態で、子ボタンが全て押下されると、親ボタンも押下状態にする
ような場合の2で、親ボタンの押下状態だけを変える時など。
click()
ui->pushButton->click();
toggled(bool)もclicked(bool)も呼び出される。
=UI操作でボタンを押下したのと同様。
スタイルシートに関しては、また別の記事にて。