プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/02/01

[PySide] QStackedLayout で Alignment を設定したい

event_note2022/01/31 15:45

QStackedLayoutaddWidget では alignment を指定できません。

QVBoxLayoutQHBoxLayout のように alignment を指定したい場合はどうすれいいのか?
ということでググってみたものの情報が少なく、参考になりそうなのは以下くらい。

こういうこと?なんか違う気がする・・・。

import sys
from PySide6.QtWidgets import *
from PySide6.QtCore import Qt
from PySide6.QtCharts import *

class MainWindows(QWidget):
    def __init__(self):
        super().__init__()

        container = QWidget()
        # コンテナを親として QVBoxLayout を作成(つまり、コンテナ配下に QVBoxLayout を作成)
        vbox_layout = QVBoxLayout(container)
        vbox_layout.addWidget(QPushButton('test1'), alignment=Qt.AlignCenter)

        stacked_layout = QStackedLayout()
        stacked_layout.addWidget(container)
        self.setLayout(stacked_layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindows()
    window.show()
    window.resize(360, 240)
    sys.exit(app.exec())

一応表示は正しいんですけどね。