QPushButton相互に排他的な選択

要求する

QTのQPushButtonを使用している場合、相互に排他的な要件がある場合があります。選択できるのは1つだけであり、を押した後に別の背景画像をロードする必要があります。

たとえば、男性と女性のどちらかを選択する場合、どちらか一方しか選択できません。選択後、ボタンの状態は選択された状態になり、もう一方のボタンは選択されていない状態に戻ります。

私は次のようにインターネット上で写真を見つけました:
ここに画像の説明を挿入します

検証の便宜のために、QTデザイナーを使用しています。

QButtonGroup

ここでは、QButtonGroupクラスを使用します
。QButtonGroupクラスは、ボタンウィジェットのグループを整理するためのコンテナーを提供します。

このクラスは、ボタンを管理するためのコンテナを提供します。

ステップ

0. 2つのボタンをメインUIにドラッグし、画像をカットするときに2つのボタンのサイズを画像のサイズに変更します

1. QTデザイナでは、2つのボタンを同時に選択し、右クリックしてボタングループに割り当てます。

2.リソースファイルの追加
上の画像を同じサイズの4つのpng形式の画像に切り取り、プロジェクトのリソースファイルに追加します。

3.スタイルシートを追加し、
「男性」ボタンを右クリックします—>スタイルシートを変更します。

QPushButton{
			border-image: url(:/manV.png);} //空心图片
QPushButton:checked{
			border-image: url(:/man.png);}  //黑心图片

「女性」ボタンを右クリック—>スタイルシートの変更...

QPushButton{
			border-image: url(:/womanV.png);} //空心图片
QPushButton:checked{
			border-image: url(:/woman.png);}  //黑心图片

4.属性をチェック可能に設定します

2つのボタンのchechable属性を有効に設定してから、一方のchecked属性を有効に設定します。

備考:

1. QPushButton:チェックされているのは押された状態です

2. border-image属性画像は、コントロールのサイズに合わせて拡大されます。

おすすめ

転載: blog.csdn.net/amwha/article/details/85873921