Qt QCOMBOX can';不能改变边框颜色

Qt QCOMBOX can';不能改变边框颜色,qt,colors,border,frame,qcombobox,Qt,Colors,Border,Frame,Qcombobox,我有一个继承QComboBox的类。我需要为此小部件设置红色边框。 我无法使用QPalette,我正在尝试使用setStyleSheet: pComboBox->setStyleSheet(“QFrame{border:2px实心红色;}”) 对于QLineEdit,它可以正常工作,但对于QComboBox,我在弹出视图周围有红色边框,而不是组合框。 如何访问QCOMBOX的框架?您应该使用QCOMBOX选择器,而不是QFrame(如果您想要两个样式,可以同时使用这两个选项) 有关该小部件样式的

我有一个继承QComboBox的类。我需要为此小部件设置红色边框。
我无法使用QPalette,我正在尝试使用setStyleSheet:
pComboBox->setStyleSheet(“QFrame{border:2px实心红色;}”)

对于QLineEdit,它可以正常工作,但对于QComboBox,我在弹出视图周围有红色边框,而不是组合框。

如何访问QCOMBOX的框架?

您应该使用
QCOMBOX
选择器,而不是
QFrame
(如果您想要两个样式,可以同时使用这两个选项)


有关该小部件样式的详细信息,请参阅。

好的,我发现解决此问题的最简单方法是对我使用的小部件进行子类化,并在paintEvent()中绘制红色矩形。

这适用于QComboBox,但设置此样式后,QComboBox看起来像Win95组合框,而不是XP。对于我使用的小部件(它继承了QComboBox),这根本不起作用。即使我将我的小部件的类名与setStyleSheet一起使用:(我已经尝试了我找到的所有方法。现在我想知道为某个ComboBox添加一个QFrame并使用它制作红色边框是否是个好主意……一旦你将一个ComboBox样式化,Qt就不能再使用它的本机OS版本了(而且,通过对其进行样式化,您正在打破本地外观)。因此,如果你想弄乱组合框的样式,你必须自定义几乎整个小部件。@Funt,正如一个想法:为什么不使用Qpalete来设置组合框的背景色呢?与其使用彩色边框,不如突出显示整个框。并且保持本机操作系统样式不变。不幸的是,我不能使用Qpalete.Class which我必须使用(继承QCOMBOX)忽略Qpalete的设置并使用它自己的颜色。对我来说,边框看起来比红色背景更好。向QCOMBOX添加我自己的额外QFrame的最佳方法是什么?
pComboBox->setStyleSheet("QComboBox { border: 2px solid red; } QFrame { border: 2px solid blue; }")