首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定制具有多个类目的QCombobox

如何定制具有多个类目的QCombobox
EN

Stack Overflow用户
提问于 2012-04-24 18:16:17
回答 2查看 1.6K关注 0票数 0

我正在使用QCombobox,我想在QCombobox中的每个项目显示三个图标。但目前,QCombobox中的每一项只显示一个图标!

每个图标都应该动态更改。

EN

Stack Overflow用户

回答已采纳

发布于 2012-04-25 11:48:18

您应该创建新的自定义QAbstractItemDelegate,并使用void QComboBox::setItemDelegate ( QAbstractItemDelegate * delegate )接口将其设置为QComboBox。

在委托中,您需要实现

代码语言:javascript
复制
virtual void    paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const = 0

如你所愿。

您还需要使用以下接口为userData中的组合框提供不同的图标,您可以在deletegate的paint方法中使用这些图标来检索图标并绘制它。

代码语言:javascript
复制
void QComboBox::addItem ( const QString & text, const QVariant & userData = QVariant() )

摘要:

当我如上实现时,这些图标仅显示为单击下拉列表。在正常情况下,文本仅显示。因此,对于正常情况下的三个图标和文本显示,我们必须在QComboBox子类的情况下重新实现QCombobox的paintEvent,或者使用eventFilter捕获QCombobox的paintEvent而不使用QCombobox子类!感谢您的回复!

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10295950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档