【MayaPySide】QCheckBoxのTextを左側に表示する【PySide2】

python,qt,PySide,PySide2

QCheckBoxのTextを左側に表示したいことってありませんか?
今回はQCheckBoxのテキストを左側に表示する方法を紹介していきます

from PySide2.QtWidgets import*
from maya import OpenMayaUI
try:
    import shiboken
except:
    import shiboken2 as shiboken

ptr = OpenMayaUI.MQtUtil.mainWindow()
parent = shiboken.wrapInstance(long(ptr), QWidget)

class GUI(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(GUI, self).__init__(parent, *args, **kwargs)
        self.setWindowTitle("QCheckBox")
        self.resize(300, 230)
        self.checkBox = QCheckBox("QCheckBox",self)
        self.checkBox.move(100, 90)

gui = GUI()
gui.show()

上のコードを使うと簡単に試せます
実はテキストの方向を左側にするのはとても簡単で17行目の後にself.checkBox.setLayoutDirection(Qt.RightToLeft)というコードを記述することでできます

self.checkBox.setLayoutDirection(Qt.RightToLeft)


上の画像は先ほどのコードを追記して実行したものになります
実はQtにはQt::LayoutDirectionといったクラスが用意されており、Qt::LayoutDirectionを使うことでQtのレイアウトとテキスト処理の方向を指定することができます

Constant Value Description
Qt.LeftToRight 0 左から右へのレイアウト
Qt.RightToLeft 1 右から左へのレイアウト
Qt.LayoutDirectionAuto 2 自動レイアウト

setLayoutDirectionでレイアウトの方向を指定することができます
テキストレイアウトの方向はQt4.7移行影響しなくなったためテキストのレイアウト方向を変更したい場合は別途setAlignmentか何かで方向を指定する必要があります

いかがでしたでしょうか
何かのときに参考にしていただければと思います