📌  相关文章
📜  PyQt5 ComboBox – 与向下箭头不同的边框颜色(1)

📅  最后修改于: 2023-12-03 15:03:56.767000             🧑  作者: Mango

PyQt5 ComboBox – 与向下箭头不同的边框颜色

在PyQt5中,ComboBox是一个重要的窗口部件,它提供了一个下拉列表框,用户可以选择特定的项目。在默认情况下,ComboBox的边框颜色与向下箭头的颜色相同,但是在某些情况下,您可能需要使ComboBox的边框颜色与箭头颜色不同。在这个教程中,我们将学习如何使用PyQt5实现这一点。

要更改ComboBox边框的颜色,可以使用QSS(Qt样式表)。QSS是一种基于CSS的样式表,可以修改应用程序的外观和风格。在这个例子中,我们将使用QSS来更改ComboBox的边框颜色。

from PyQt5 import QtWidgets, QtCore

class Window(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()

        self.my_combobox = QtWidgets.QComboBox(self)
        self.my_combobox.setGeometry(50, 50, 150, 30)
        self.my_combobox.addItems(["Item 1", "Item 2", "Item 3"])
        
        self.setStyleSheet("""
            QComboBox {
                border: 2px solid red;
            }
            QComboBox::drop-down {
                subcontrol-origin: padding;
                subcontrol-position: top right;
                width: 20px;
                border-left-width: 1px;
                border-left-color: red;
                border-top-right-radius: 3px;
                border-bottom-right-radius: 3px;
            }
        """)

if __name__ == "__main__":
    app = QtWidgets.QApplication([])
    win = Window()
    win.show()
    app.exec()

在这个例子中,我们首先创建了一个ComboBox,并添加了一些项目。然后,我们使用setStyleSheet()函数设置QSS,使用“QComboBox”选择器选择ComboBox,并将其边框颜色设置为红色。接下来,我们使用“QComboBox::drop-down”选择器选择ComboBox的向下箭头,并定义它的边框颜色为红色,这使得ComboBox的边框颜色与箭头的颜色不同。

这是设置ComboBox边框颜色与箭头颜色不同的方法,可以使用类似的方法对其他部件的样式进行修改。在修改样式时,请务必考虑可用性和易读性。

参考链接:

PyQt5 --QSS 样式表

StackOverflow -- How to change the border color of a QComboBox and there dropdown list?