setAlignmentをPyQt5環境からPyQt6環境に移行する際のAttributeError: type object ‘Qt’ has no attribute ‘AlignCenter’の対処方法を説明する。
結論
PyQt5:setAlignment(Qt.AlignCenter)
PyQt6:setAlignment(Qt.AlignmentFlag.AlignCenter)
コード例
下記のようにテキストを中央に表示する方法を説明する。
PyQt5のコード
#!/usr/bin/env python3
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qt
class GuiWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setGeometry(0, 0, 250, 250)
self.build_ui()
self.set_alignment()
def build_ui(self):
self.qlb = QLabel('label', self)
self.qlb.setGeometry(25, 25, 200, 200)
self.qlb.setStyleSheet("border: 1px solid black;")
def set_alignment(self):
self.qlb.setAlignment(Qt.AlignCenter) # ?
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
window.show()
sys.exit(app.exec())
PyQt6のコード
#!/usr/bin/env python3
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel
from PyQt6.QtCore import Qt
class GuiWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setGeometry(0, 0, 250, 250)
self.build_ui()
self.set_alignment()
def build_ui(self):
self.qlb = QLabel('label', self)
self.qlb.setGeometry(25, 25, 200, 200)
self.qlb.setStyleSheet("border: 1px solid black;")
def set_alignment(self):
self.qlb.setAlignment(Qt.AlignmentFlag.AlignCenter) # ?
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
window.show()
sys.exit(app.exec())
差分
その他、PyQt5からPyQt6への移行方法の基本は下記記事を参照。
まとめ
AttributeError: type object ‘Qt’ has no attribute ‘AlignCenter’の対処方法を説明した。
コメント