Фон для QCombobox, наследующий фоновое изображение — PyQt5

У меня есть проблема, когда мой QComboBox не использует фон, который я определил, ну, это так, за исключением только «поля выбранного элемента». Вот скриншот:

Я хочу, чтобы фон был белым для всего.

Вот код:

from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox
import sys


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.xpos, self.ypos = 200, 200
        self.width = 1920 / 2
        self.height = 1080 / 2
        self.setFixedSize(self.width, self.height)
        self.setWindowTitle("Test")
        self.move(200, 200)
        self.setStyleSheet("background-image: url(images/background.jpg)")
        self.initUI()

    def initUI(self):
        self.font13 = QtGui.QFont()
        self.font13.setPointSize(13)

        self.combobox = QComboBox(self)
        self.options = ['Option #1', 'Option #2', 'Option #3',
                        'Option #4', 'Option #5', 'Option #6']
        self.combobox.addItems(self.options)
        self.combobox.setFont(self.font13)
        self.combobox.setStyleSheet(
            'background: white')
        self.updateSize(self.combobox)

    def updateSize(self, object):
        object.adjustSize()


def window():
    app = QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec_())


window()

А вот ссылка на фон, который я использовал: https://pixabay.com/es/illustrations/azul-de-fondo-degradado-colores-1142743/

Как я могу изменить его так, чтобы все параметры имели белый фон, а не только выбранный? Спасибо!


person ThatComputerGuy    schedule 06.04.2020    source источник
comment
Я думаю, что вы хотите что-то вроде этого: setStyleSheet("QComboBox QAbstractItemView{background:white}");   -  person Dennis Jensen    schedule 06.04.2020
comment
@DennisJensen Спасибо! Однако я просто сделал это и получил тот же результат; Ничего не изменилось.   -  person ThatComputerGuy    schedule 06.04.2020
comment
@DennisJensen Спасибо, у меня совсем нет опыта работы с PyQt5, и я все еще учусь. Причина, по которой я не создал для этого QWidget, заключается в том, что я до сих пор не понимаю, почему и как это сделать. Для примера, который я создал, я нашел решение и опубликовал его. P.S. Я собираюсь изучить QWidgets прямо сейчас, чтобы в будущем я мог публиковать более качественные вопросы.   -  person ThatComputerGuy    schedule 06.04.2020


Ответы (1)


Я понял проблему! Проблема заключалась в том, что я устанавливал таблицу стилей всего главного окна так, чтобы в качестве фона использовался png, а не только главное окно. Решение состояло в том, чтобы изменить эту строку:

self.setStyleSheet("background-image: url(images/background.jpg)")

to

self.setStyleSheet("QMainWindow {background-image: url(images/background.jpg)}")

Надеюсь, это поможет кому-то!

person ThatComputerGuy    schedule 06.04.2020