Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 移除QComboBox列表视图阴影效果_Qt_Qt4_Qcombobox - Fatal编程技术网

Qt 移除QComboBox列表视图阴影效果

Qt 移除QComboBox列表视图阴影效果,qt,qt4,qcombobox,Qt,Qt4,Qcombobox,默认情况下,QComboBoxlistview具有阴影效果。有没有办法把它去掉?阴影是从QStyle控制还是以其他方式控制 阴影效果不是特定于Qt的东西,而是特定于桌面主题的东西。阴影取决于桌面环境使用的样式/主题。如果您的样式/主题为QComboBox定义了阴影,那么Qt将非常迅速地绘制它。也就是说,您可以搜索不绘制阴影的样式。我这样做的效果是: cb = QComboBox() cb.addItems( [ '1', '2', '3', '4', '5', '6' ] ) cb.setSty

默认情况下,
QComboBox
listview具有阴影效果。有没有办法把它去掉?阴影是从
QStyle
控制还是以其他方式控制


阴影效果不是特定于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()
为此,您必须有一个兼容的主题,如聚酯,由
QStyleFactory.keys()
列出。我尝试了时髦的微风风格和著名的曲线风格,但它们总是画出阴影。您可以使用
GTK+
Cleanlooks
样式实现同样的效果

仅供参考:涤纶是KDE附带的款式之一

以下是上述代码的屏幕截图:


阴影效果不是特定于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()
为此,您必须有一个兼容的主题,如聚酯,由
QStyleFactory.keys()
列出。我尝试了时髦的微风风格和著名的曲线风格,但它们总是画出阴影。您可以使用
GTK+
Cleanlooks
样式实现同样的效果

仅供参考:涤纶是KDE附带的款式之一

以下是上述代码的屏幕截图:


好吧,这可能适用于那些没有阴影效果的主题,但我有阴影效果,所以我终于找到了一个简单的方法来实现它

self.comboBox.findChild(QFrame).setWindowFlags(Qt.Popup | Qt.NoDropShadowWindowHint)
组合框内部有一个QFrame。它的窗口效果产生阴影。 我们可以用前面提到的一行来消除这种影响。 小心,不要把两者都放进去,否则你不会打开弹出窗口


我知道这篇文章发表已经有一段时间了,但我还没有找到任何其他解决方案。

好的,这可能适用于那些没有阴影效果的主题,但我有阴影效果的人,所以我终于找到了一个简单的方法让它工作

self.comboBox.findChild(QFrame).setWindowFlags(Qt.Popup | Qt.NoDropShadowWindowHint)
组合框内部有一个QFrame。它的窗口效果产生阴影。 我们可以用前面提到的一行来消除这种影响。 小心,不要把两者都放进去,否则你不会打开弹出窗口


我知道这篇文章发表已经有一段时间了,但我还没有找到任何其他的解决办法。

谢谢马库斯,让我试试看