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

Почему фон у кнопки, а не у основного окна (PyQt5)?

Добрый день!
Пытаюсь вставить фоновое изображение в основное окно приложения для Windows. Использую PyQt5 от Riverbank.
Картинку вставил так:
self.setStyleSheet("background-image: url(x_pic.png);"
                   "background-repeat: no-repeat;background-position: center;")

GUI сделал так:

class Interface(QWidget):

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

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

        start_button = QPushButton('Start', self)
        start_button.clicked.connect(run_convertor)
        start_button.resize(start_button.sizeHint())
        start_button.move(100, 100)
        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("background-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())


Фон появляется у кнопки, а не у окна. Как сделать, что бы фон был не у кнопки,а у основного окна?
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
@ti_zh_vrach Автор вопроса
Бывший аптекарь.
Заменил QWidget на QMainWindow. Заодно сделал кнопку круглой и невидимой (под картинку надо).
Код

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.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')
        start_button.setStyleSheet("QPushButton {background-color: rgba(255, 0, 0, 0);"
                                   "border-radius: 100px;}")

        self.resize(1000, 500)
        self.center()
        self.setWindowTitle('jpgTabaki')
        self.setWindowIcon(QIcon('icon.png'))
        self.setToolTip('Window tip')
        self.setStyleSheet("QMainWindow {background-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())

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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