@ti_zh_vrach
Бывший аптекарь.

Как с PyQt масштабировать фоновое изображение с сохранением соотношения сторон?

Добрый день!
Пока получилось сделать без сохранения соотношения сторон.
class Interface(QMainWindow):

    def __init__(self):
        super().__init__()
        self.main_window()

    def main_window(self):
        QToolTip.setFont(QFont('TimesNewRoman', 12))

        start_button = QPushButton('Start', self)
        start_button.setFlat(True)
        start_button.setStyleSheet("QPushButton {background-color: rgba(255, 0, 0, 0);"
                                   "border-radius: 100px;}")
        start_button.resize(200, 200)
        start_button.move(100, 100)
        start_button.setFont(QFont('Calibri', 42))
        start_button.clicked.connect(run_convertor)
        start_button.setToolTip('Button tip')

        self.resize(1000, 500)
        self.center()
        self.setWindowTitle('jpgTabaki')
        self.setWindowIcon(QIcon('icon.png'))
        self.setToolTip('Window tip')
        self.setStyleSheet("QMainWindow {border-image: url(x_pic.png);"
                           "background-repeat: no-repeat; background-position: center;}")
        self.show()

    def center(self):
        q_screen = self.frameGeometry()
        q_resolution = QDesktopWidget().availableGeometry().center()
        q_screen.moveCenter(q_resolution)
        self.move(q_screen.topLeft())

Когда искал на английском, видел решения с QWidget вместо QMainWindow, но у меня фон вообще пропал. Наверное, я что-то не понял. Когда искал на русском, мне вообще сыпался какойй-то мусор на тему аналитики и конференций.

Как можно сохранить соотношение сторон при масштабировании?

И ещё интересно. Если убрать "background-repeat: no-repeat; background-position: center;", то фон тоже пропадает. Почему так?
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы