如果您想要自定义 PyQT5 中组合框被打开的背景颜色,可以使用 QComboBox.view().setStyleSheet() 方法来实现。
下面是一个展示如何使用这个方法的示例:
import sys
from PyQt5 import QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
combo_box = QtWidgets.QComboBox(self)
combo_box.addItems(['Red', 'Blue', 'Green'])
combo_box.setGeometry(50, 50, 50, 30)
# 设置组合框打开状态时的背景颜色
combo_box.view().setStyleSheet(
"QListView {background-color: rgba(0,0,0,50%); selection-background-color: grey;}"
)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec())
在这个示例中,我们定义了一个 QMainWindow
子类,并在其中添加了一个 QComboBox
。 然后,我们在构造函数中使用 combo_box.view().setStyleSheet()
方法来设置组合框打开状态时的背景颜色。
在这个示例中,我们使用 QListView
类来设置背景颜色并设置其不透明度为 50%。我们还设置了选中条目的背景颜色为灰色。
下面是另外一个示例,在这个示例中,我们使用不同的颜色:
import sys
from PyQt5 import QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
combo_box = QtWidgets.QComboBox(self)
combo_box.addItems(['Red', 'Blue', 'Green'])
combo_box.setGeometry(50, 50, 50, 30)
# 设置组合框打开状态时的背景颜色
combo_box.view().setStyleSheet(
"QListView {background-color: pink; selection-background-color: orange;}"
)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec())
在这个示例中,我们将组合框的打开状态的背景颜色设置为粉色,选中条目的背景颜色设置为橙色。
请注意,在设置背景颜色之前,我们使用 combo_box.view()
属性来找到列表的视图。 这个属性搜寻组合框下拉列表中涉及的对象,然后在对象中搜索 QAbstractItemView 对象。QAbstractItemView 是一个虚拟的类,QComboBox 和 QListWidget 都是继承了它。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 当组合框处于打开状态时的背景颜色 - Python技术站