先介绍一下设置方法

// index项 设置为不可选择,index代表第几项,0 代表不可选(个人理解:QVariant::Invalid),-1为可以(个人理解:代表设置失败,恢复默认)
ui->combox->setItemData(index, QVariant(0), Qt::UserRole - 1);

// index项 设置背景置灰
ui->combox->setItemData(index, QBrush(QColor(192,192,192)), Qt::BackgroundRole);

// index项 设置字体黑色
ui->combox->setItemData(index, QBrush(QColor(Qt::black)), Qt::ForegroundRole);

// Linux下设置控件样式没有效果的解决方案
ui->combox->setStyleSheet("QComboBox{combobox-popup:0;}");

下面介绍一下ItemDataRole(即上述第三项)

一般用途的角色(和相关的类型)有:

常数 描述
Qt::DisplayRole 0 以文本形式呈现的关键数据。(QString)
Qt::DecorationRole 1 将以图标形式呈现为装饰的数据。(QColor, QIcon或QPixmap)
Qt::EditRole 2 以适合在编辑器中编辑的形式出现的数据。(QString)
Qt::ToolTipRole 3 在项目的工具提示中显示的数据。(QString)
Qt::StatusTipRole 4 状态栏中显示的数据。(QString)
Qt::WhatsThisRole 5 在“What’s This?”模式下显示的数据。(QString)
Qt::SizeHintRole 13 将提供给视图的项的大小提示。(QSize)

描述外观和元数据(与相关类型):

常数 描述
Qt::FontRole 6 用默认委托呈现的项目所用的字体。(QFont)
Qt::TextAlignmentRole 7 使用默认委托呈现的项目的文本对齐。(Qt::Alignment)
Qt::BackgroundRole 8 用于用默认委托呈现的项目的背景画笔。(QBrush)
Qt::BackgroundColorRole 8 这个角色已经过时了。使用BackgroundRole代替。
Qt::ForegroundRole 9 前景色刷(通常是文本颜色),用于用默认的委托呈现的项目。(QBrush)
Qt::TextColorRole 9 这个角色已经过时了。使用ForegroundRole代替。
Qt::CheckStateRole 10 此角色用于获取项的选中状态。(Qt::CheckState)
Qt::InitialSortOrderRole 14 此角色用于获取头视图部分的初始排序顺序。(Qt::SortOrder)。Qt 4.8中引入了这个角色。

可访问性角色(与相关类型):

常数 描述
Qt::AccessibleTextRole 11 可访问性扩展和插件(如屏幕阅读器)所使用的文本。(QString)
Qt::AccessibleDescriptionRole 12 用于可访问性目的的项目描述。(QString)

用户角色:

常数 描述
Qt::UserRole 0x0100 可用于特定于应用程序目的的第一个角色。对于用户角色,由开发人员决定使用哪种类型,并确保组件在访问和设置数据时使用正确的类型。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐