4

次のように定義されたグリッド レイアウトに QCheckbox があります。

self.isSubfactorCheckbox = QtGui.QCheckBox('Is &subfactor', self)

デフォルトでは、チェックボックスは「Is subfactor」テキストの左側にあります。テキストの右側に移動したい。

サブコントロールの位置をいじってみましたが、役に立ちませんでした。

self.isSubfactorCheckbox.setStyleSheet('QCheckBox::indicator{subcontrol-origin: content; subcontrol-position: top right;}')

これにより、チェックボックスが右に移動します (テキストの左側にあります) が、テキストは右に押し出され、ウィンドウの端からはみ出します。

これは、テキストを右に移動するのに役立ちませんでした:

self.isSubfactorCheckbox.setStyleSheet('QCheckBox::text{subcontrol-origin: content; subcontrol-position: top left; }')

解決策は、QLabel を作成し、その右側にチェックボックスを追加することですが、QLabel の文字に下線を付けて、ユーザーがショートカット キーであることがわかるようにする方法が見つかりませんでした。<u> </u>文字の前に & を付けたり、タグで囲んだりしてみました。

QLabel のみを使用したいのですが、テキストが押し出されることなく、チェックボックスをテキストの右側に切り替えるにはどうすればよいでしょうか。

4

2 に答える 2

23

さらに簡単に...

QWidget.setLayoutDirection メソッドを使用して、RightToLeft と LeftToRight を設定します。

これは、デザイナーまたはコードを介して行うことができます。これは、プロパティまたはすべてのウィジェットです。

于 2012-08-12T21:39:28.437 に答える
4

バディメカニズムを使用します。QCheckBox を QLabel のバディに設定します。その後、プレフィックス & は、ラベル内のショートカット文字に下線を引きます。QLabel の setBuddy のドキュメントを参照してください。

于 2010-07-06T22:12:54.023 に答える