【Qt】【QCheckBox】QCheckBoxの選択範囲の変更
QCheckBox の選択範囲を横幅いっぱいにする方法について。
スタイルシートで背景色を設定すると横幅いっぱいに色が設定されますが、
チェックできる範囲(チェックボックスとテキスト領域)と異なる範囲のため、
選択範囲を変えたいという事情がありました。
まずは自分なりに調べたのですが、空白文字を詰めるという方法が
StackOverFlowで見つかっただけ。。。
困って Qt 日本 ユーザー会 のMLで質問したところ
@soramimi_jp さんからご回答いただいた方法がスマートだったのでご紹介。
QCheckBoxを継承したクラスを作成します。
例: class MyCheckBox : public QCheckBox
hitButton関数をオーバーライドします。
bool MyCheckBox::hitButton(const QPoint &pos) const { return QAbstractButton::hitButton(pos); }
デザイナで、チェックボックスを右クリックして、「格上げ先を指定...」を選びます。
[格上げされたクラス名]に MyCheckBox を入力します。
[追加]ボタンを押します。
[格上げ]ボタンを押します。
ビルドして実行。
以上です。