一般社団法人 全国個人事業主支援協会

COLUMN コラム

Qtで複数のスイッチを排他制御しようとしたとき、

  • QRadioButtonをグループボックスに配置する
  • QRadioButtonをボタングループに割り当てて使用する

が候補に挙がると思われます。

・・・・・・しかし、一身上の都合によりQRadioButtonではなくQPushButtonを使いたかったので、少し調べた話。

 

QButtonGroupクラスを使う
処理手順は下記の通り。

  1. QButtonGroupを作成する。
  2. QButtonGroupaddButton関数で、指定のQPushButtonをボタングループに追加する。
  3. SIGNALとSLOTを連携させる。

QAbstractButtonから継承しているコンテナなら使えます。QPushButtonも問題無く使えそう。
QPushButtonをチェック動作可能にしておく必要はあるものの、
独自のID値を割り振れるので、データと連動させる等もしやすいと思われます。

 

QSignalMapperを使う
こちらの記事を見つけ、MFCのON_COMMAND_RANGEみたいなものかな?
とフムフム読み進めていたところ、『QSignalMapperは非推奨』との記事も見つける。

ラムダ式に不慣れなので一瞬こんがらがる。

 

結局、、、
初見で扱いやすそうだったQButtonGroupを使用しましたが、ラムダ式の記法に慣れたらそちらに置き換えるかもしれません。

 

新型コロナウィルスが猛威を奮っております。
小まめなうがい・手洗い・適度な加湿、並びに睡眠を心掛け、
この難局を乗り越えていけます様。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア