📅  最后修改于: 2023-12-03 15:33:54.316000             🧑  作者: Mango
在PyQt5中,ComboBox是一种常用的用户界面控件。它提供了一组选项供用户选择,可以设置不同的样式和颜色来使它们在窗口中更加突出。
当ComboBox被设置为不可编辑时,它的背景颜色将变为灰色,这可能与我们的窗口主题不协调。因此,我们可以设置ComboBox的样式表来更改其背景颜色。下面是一个示例程序,它演示了如何使用样式表来更改ComboBox的背景颜色。
from PyQt5.QtWidgets import QApplication, QComboBox, QWidget
from PyQt5.QtGui import QPalette, QColor
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建ComboBox控件
combo = QComboBox(self)
combo.addItem('Red')
combo.addItem('Blue')
combo.addItem('Green')
# 将ComboBox设置为不可编辑
combo.setEditable(False)
# 创建一个新的调色板并设置ComboBox的背景颜色
palette = QPalette()
palette.setColor(QPalette.Background, QColor(43, 43, 43))
palette.setColor(QPalette.Foreground, QColor(200, 200, 200))
combo.setPalette(palette)
# 设置ComboBox样式表以更改背景颜色
combo.setStyleSheet('''
QComboBox:!editable {
background-color: #2b2b2b;
color: #c8c8c8;
}''')
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('ComboBox Background Color')
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
在上面的示例程序中,我们首先创建了一个ComboBox控件,然后将它设置为不可编辑。我们创建了一个新的调色板,并将ComboBox的背景颜色设置为灰色。最后,我们使用样式表将ComboBox的背景色设置为深灰色,并将前景色设置为浅灰色。
QComboBox:!editable {
background-color: #2b2b2b;
color: #c8c8c8;
}
在这里,我们使用了像素和十六进制值来设置ComboBox的背景和前景颜色。我们还使用了伪状态选择符号'!editable',该符号表示ComboBox当前处于不可编辑状态。
当我们运行程序时,ComboBox的背景颜色将变为深灰色,这会使它看起来与我们的窗口主题更加协调。
希望这个简单的示例能帮助您更好地了解如何使用PyQt5更改ComboBox的背景颜色(如果不可编辑)。