删除QComboBox listView阴影效果

Kis*_*mar 5 qt qt4 qcombobox

默认情况下,QComboBox列表视图具有阴影效果.有没有办法删除它?阴影是由QStyle或以其他方式控制的?

qcombobox影子

Mar*_*cus 4

阴影效果不是 Qt 特定的东西,它是桌面主题特定的东西。阴影取决于您的桌面环境使用的样式/主题。如果您的样式/主题定义了 QComboBox 的阴影,那么 Qt 将非常迅速地绘制它。也就是说,您可能会寻找一种不绘制阴影的样式。我这样做得到的效果是:

cb = QComboBox()
cb.addItems( [ '1', '2', '3', '4', '5', '6' ] )
cb.setStyle( QStyleFactory.create( "Polyester" ) )
cb.setStyleSheet( "QComboBox QAbstractItemView { border: 1 px solid gray; }" )
cb.show()
Run Code Online (Sandbox Code Playgroud)

为此,您必须有一个兼容的主题,例如 列出的聚酯QStyleFactory.keys()。我尝试过时髦的 Breeze 风格和著名的 QtCurve 风格,但它们总是画出阴影。您可以实现相同的使用GTK+Cleanlooks样式。

仅供参考:聚酯纤维是 KDE 附带的款式之一。

这是上面代码的屏幕截图:

在此输入图像描述