QCombobox的背景继承背景图片-PyQt5

时间:2020-04-06 15:13:48

标签: python pyqt pyqt5 qcombobox qtstylesheets

我有一个问题,我的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/

如何更改它,以便所有选项都具有白色背景,而不仅仅是选定的背景?谢谢!

1 个答案:

答案 0 :(得分:1)

我发现了问题!问题是我将整个主窗口的样式表设置为以png为背景,而不仅仅是主窗口。解决方案是更改此行:

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

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

希望这对某人有帮助!