我无法在PyQt中更改QCombobox的高亮颜色。我设法改变了实际输入框的高亮颜色,但是当显示下拉时它仍然是蓝色。以下图像显示了究竟发生了什么。调色板方法适用于Linux,但不适用于Windows(我目前使用的是)。 我使用了PyQt调色板:
brush = QtGui.QBrush(QtGui.QColor(168, 168, 168))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Highlight, brush)
self.comboBox_7.setPalette(palette)
在这里,我设法将高亮颜色更改为实际框的灰色:
但是这里的下拉突出显示仍为蓝色:
所有人都很感激。
答案 0 :(得分:1)
根据Qt docs,调色板可能并不总是在某些平台上运行:
警告:某些样式不会将调色板用于所有绘图 例如,如果他们使用本机主题引擎。情况就是这样 适用于Windows XP,Windows Vista和macOS样式。
Qt Style Sheets Overview表明样式表应该适用于调色板不适用的地方。我不能在Linux以外的任何其他地方测试这个,但以下似乎工作正常:
from PyQt5 import QtWidgets
app = QtWidgets.QApplication([''])
combo = QtWidgets.QComboBox()
combo.addItems('One Two Three'.split())
combo.setStyleSheet('selection-background-color: rgb(168,168,168)')
combo.show()
app.exec_()
答案 1 :(得分:0)
我想补充一点,尽管为 QComboBox 设置“选择背景颜色”似乎很明显,但该属性实际上属于 QWidget。所以如果你需要明确,你可以做这样的事情combo.setStyleSheet('QWidget{selection-background-color: rgb(168,168,168);}')