要求する
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属性画像は、コントロールのサイズに合わせて拡大されます。