Не получается импортировать атрибут в PyQt6

Рейтинг: -1Ответов: 1Опубликовано: 08.08.2023

Я писал приложение на PyQt5, но потом решил мигрировать на PyQt6. И у меня начали сыпаться ошибки, по типу того что в PyQt6 нет модулей, которые были и которые я использовал в PyQt5. Я полез в документацию, решил несколько проблем, но никак не могу решить последнюю, а именно у меня есть надпись которую я поместил в QGridLayout и закрепил в центре окна с помощью метода setAlignment(Qt.AlignCenter) , но после обновления на PyQt6 я узнал, что модулей Qt в новой версии нет. Я пошел искать в документации, интернете, ютюбе, stackoverflow и где только можно и нашел в документации, что вместо модулей Qt надо использовать pyqtProperty. Я пошел импортировать его в файл, но он у меня даже не импортируется! Что делать и как вообще использовать этот pyqtProperty? вот код:

from PyQt6.QtWidgets import QApplication, QLabel, \
    QPushButton, QGridLayout, QWidget
from PyQt6.QtGui import QPixmap
from PyQt6.QtCore import pyqtProperty # вот это атрибут(метод) я хотел импортировать, но у меня не получилось
import sys


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

        self.setWindowTitle("Quiz")
        self.setGeometry(600, 100, 648, 500)

        self.pixmap = QPixmap("background_image.jpg")
        self.background_label = QLabel(self)
        self.background_label.setObjectName("background_label")
        # self.background_label.setAlignment(Qt.AlignCenter) вот это метод я использовал в PyQt5
        self.background_label.pyqtProperty()
        self.background_label.setPixmap(self.pixmap)
        self.background_label.adjustSize()

        self.welcome_label = QLabel(self)
        self.welcome_label.move(200, 0)
        self.welcome_label.setObjectName("welcome_label")
        # self.welcome_label.setAlignment(Qt.AlignCenter)
        self.welcome_label.setWordWrap(False)
        self.welcome_label.setText(
            "Это будет викторина по истории, философии и обществознанию.")
        self.welcome_label.adjustSize()

        self.start_button = QPushButton(self)
        self.start_button.move(100, 480)
        self.start_button.setObjectName("start_button")
        self.start_button.setText("Нажмите чтобы начать!")
        self.start_button.adjustSize()

        self.grid = QGridLayout()
        self.grid.addWidget(self.welcome_label)
        self.grid.addWidget(self.background_label)
        self.grid.addWidget(self.start_button)
        self.grid.setSpacing(10)

        self.setLayout(self.grid)


StyleSheet = """
#centralwidget {
    border-image: url(background.png) 0 0 0 0 stretch stretch;
}
#welcome_label {
    font-size: 23px;
}
#start_button {
    font-size: 20px;
    color: #ADFF2F;
    background-color: #008000;
}
"""
# color: #f77;


if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyleSheet(StyleSheet)
    window = QuizApplication()
    window.resize(648, 500)
    window.show()
    sys.exit(app.exec())

Ответы

▲ 1Принят

Чтобы исправить ошибку нужно импортировать QtCore

from PyQt6 import QtCore

А после использовать не Qt.AlignCenter, а QtCore.Qt.AlignmentFlag.AlignCenter

self.background_label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)