加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何在QComboBox上设置不可选择的默认文本?

发布时间:2020-12-16 06:01:46 所属栏目:百科 来源:网络整理
导读:使用填充项目的常规QComboBox,如果currentIndex设置为-1,则该小部件为空.相反,在组合框中可以看到初始描述性文本(例如“ – 选择国家 – ”,“选择主题 – ”等)是非常有用的,这在下拉列表中未显示. 我在文档中找不到任何内容,也没有任何以前的问题与答案.
使用填充项目的常规QComboBox,如果currentIndex设置为-1,则该小部件为空.相反,在组合框中可以看到初始描述性文本(例如“ – 选择国家 – ”,“选择主题 – ”等)是非常有用的,这在下拉列表中未显示.

我在文档中找不到任何内容,也没有任何以前的问题与答案.

解决方法

在Combo Box API中似乎没有出现这种情况.但是,基于模型的灵活性,您似乎应该可以将您的“选择国家”添加为第一个“合法”项目,然后将其保留为用户可选择:
QStandardItemModel* model =
        qobject_cast<QStandardItemModel*>(comboBox->model());
QModelIndex firstIndex = model->index(0,comboBox->modelColumn(),comboBox->rootModelIndex());
QStandardItem* firstItem = model->itemFromIndex(firstIndex);
firstItem->setSelectable(false);

根据您想要的精确行为,您可能需要使用setEnabled.或者我个人喜欢它,如果它只是一个不同的颜色项目,我可以将其设置回:

Qt,How do I change the text color of one item of a QComboBox? (C++)

(我不喜欢它,当我点击某事,然后被困到我无法回到我在哪里,即使它是一个没有选择的状态!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读