Python PyQt5 Как сделать фон окна? Код:import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QHBoxLayout, QVBoxLayout, QDesktopWidget, QLabel
from PyQt5.QtGui import QPixmap
class first(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Считывание контента
with open('set.txt', 'r') as file:
win = file.read()
try:
with open(win + '.txt', 'r') as file:
self.x = file.read().split('\n')
except:
with open('main.txt', 'r') as file:
self.x = file.read().split('\n')
#print(self.x)
self.b = []
for i in self.x:
#Кнопки
if i[:7] == '@button':
self.b.append(QPushButton(i[8:-1], self))
self.b[len(self.b) - 1].clicked.connect(self.click)
#Изображения
elif i[:6] == '@image':
lbl = QLabel(self)
lbl.setPixmap(QPixmap(i[7:-1]))
self.b.append(lbl)
#Текст
else:
lbl = QLabel(i)
self.b.append(lbl)
#Разметка страницы
hbox = QVBoxLayout()
for i in range(len(self.b)):
hbox.addWidget(self.b[i])
vbox = QHBoxLayout()
vbox.addLayout(hbox)
self.setLayout(vbox)
#Параметры окна
q = QDesktopWidget().availableGeometry()
self.setGeometry(0, 0, q.width(), q.height())
self.setWindowTitle('Goncharov Lox')
self.show()
...

21 Авг 2019 в 06:24
305 +1
0
Ответы
1

Чтобы установить фон окна в PyQt5, вы можете использовать стили CSS. Ниже приведен исправленный код, который устанавливает фоновое изображение для окна:

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QHBoxLayout, QVBoxLayout, QDesktopWidget, QLabel
from PyQt5.QtGui import QPixmap
class first(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# Считывание контента
with open('set.txt', 'r') as file:
win = file.read()
try:
with open(win + '.txt', 'r') as file:
self.x = file.read().split('\n')
except:
with open('main.txt', 'r') as file:
self.x = file.read().split('\n')
# print(self.x)
self.b = []
for i in self.x:
# Кнопки
if i[:7] == '@button':
self.b.append(QPushButton(i[8:-1], self))
self.b[len(self.b) - 1].clicked.connect(self.click)
# Изображения
elif i[:6] == '@image':
lbl = QLabel(self)
lbl.setPixmap(QPixmap(i[7:-1]))
self.b.append(lbl)
# Текст
else:
lbl = QLabel(i)
self.b.append(lbl)
# Разметка страницы
hbox = QVBoxLayout()
for i in range(len(self.b)):
hbox.addWidget(self.b[i])
vbox = QHBoxLayout()
vbox.addLayout(hbox)
self.setLayout(vbox)
# Установка фонового изображения
self.setAutoFillBackground(True)
p = self.palette()
p.setBrush(self.backgroundRole(), QPixmap('background.jpg'))
self.setPalette(p)
# Параметры окна
q = QDesktopWidget().availableGeometry()
self.setGeometry(0, 0, q.width(), q.height())
self.setWindowTitle('Goncharov Lox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = first()
sys.exit(app.exec_())

В этом коде добавлена функция установки фонового изображения для окна. Фоновое изображение должно быть в файле с именем 'background.jpg' в той же директории, где находится ваш скрипт. Обратите внимание, что фоновое изображение устанавливается с помощью метода setBrush() и setPalette().

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир