私はqt
ベースのC++アプリケーションを作成しています。私は相互に排他的であることを望む多数のボタンを持っています - 一度に1つだけ切り替えます。私は一般的にこれにQButtonGroupを使用しています。それは、ボタンのセットを管理するための素晴らしい論理的方法を提供します。 1つが押されると、以前押されたものは押されなくなります。これはまさに私が望むふるまいです。選択を許可しないQButtonGroupの代わりに?
今回は、グループ全体が完全にチェックされないようにしたいと思います。残念ながら、これはQButtonGroup
で禁止されているようだ:
排他:BOOL
このプロパティは、ボタングループが排他的であるかどうかを保持しています。
このプロパティがtrueの場合、グループ内の1つのボタンのみが任意の時点で にチェックされます。ユーザは任意のボタンをクリックして をチェックすることができ、そのボタンは既存のものをグループ内のチェックされた ボタンと置き換える。
排他的グループのユーザは、現在チェックされている ボタンをクリックして選択を解除することはできません。の代わりに、グループ内の別のボタンを にする必要があります。
もちろん、これを回避する方法はいくつかあります。私は車輪を再発明していない、2)私は慣用的なqt
の中にいれば、将来のプロジェクト管理を容易にすることができるように、この動作を可能にするQButtonGroup
の既製の代替品があるかどうか疑問に思っています。
提案がありますか?
いや私の知る限り。特にこの場合、機能を取得するために必要なコードはごくわずかです。ボタングループの排他的なプロパティをオフにするだけで、イベントフィルタ/マウスの押下イベントではすべて選択解除され、送信者オブジェクトは現在の押下ボタンと同じになります。そうでない場合は、排他的なプロパティをオンにします。 – Viv
3年後、私は今日、QButtonGroupとQt 4.8.6の代わりに自動排他を使用すると、選択したラジオボタンの選択を解除できることに気付きました。これがバグかどうかは不明です。 – Phlucious