QCheckBox のTextを左側に表示する

Tips,PySide,PySide2,Python,Qt,MayaQCheckBox

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のレイアウトとテキスト処理の方向を指定することができます

ConstantValueDescription
Qt.LeftToRight0左から右へのレイアウト
Qt.RightToLeft1右から左へのレイアウト
Qt.LayoutDirectionAuto2自動レイアウト

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