QComboBox设置数据

Posted svenzhang9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QComboBox设置数据相关的知识,希望对你有一定的参考价值。

QComboBox设置数据的时候,下来框的数据往往不是真正需要的数据, 这个时候就希望能进行一种绑定, 能够访问到
下拉框所点击字符串相对应的数据。
方法1: 使用QHash进行保存,如QHash<QString, T> 的方式来访问T对象。这种做法比较普遍。

方法2: 如下方式构建QComboBOx的item, 然后取数据的时候可以使用itemData()函数来获取.
colorComboBox = new QComboBox; foreach (const QString &name, QColor::colorNames()) { QColor color(name); colorComboBox->addItem(colorSwatch(color), name, color); }
也可以采用下述方式进行设置来构建comboBox与实际数据的对应关系。 styleComboBox
= new QComboBox; typedef QPair<QString, Qt::BrushStyle> BrushPair; foreach (const BrushPair &pair, QList<BrushPair>() << qMakePair(tr("No Brush"), Qt::NoBrush) << qMakePair(tr("Solid"), Qt::SolidPattern) << qMakePair(tr("Dense #1"), Qt::Dense1Pattern) << qMakePair(tr("Dense #2"), Qt::Dense2Pattern) << qMakePair(tr("Dense #3"), Qt::Dense3Pattern) << qMakePair(tr("Dense #4"), Qt::Dense4Pattern) << qMakePair(tr("Dense #5"), Qt::Dense5Pattern) << qMakePair(tr("Dense #6"), Qt::Dense6Pattern) << qMakePair(tr("Horizontal"), Qt::HorPattern) << qMakePair(tr("Vertical"), Qt::VerPattern) << qMakePair(tr("Cross"), Qt::CrossPattern) << qMakePair(tr("Diagonal /"), Qt::BDiagPattern) << qMakePair(tr("Diagonal \"), Qt::FDiagPattern) << qMakePair(tr("Diagonal Cross"), Qt::DiagCrossPattern)) styleComboBox->addItem(brushSwatch(pair.second), pair.first, pair.second);

 







以上是关于QComboBox设置数据的主要内容,如果未能解决你的问题,请参考以下文章

Qt:无法正确设置qComboBox的背景颜色

为啥QT中的QComboBox 没有显示下拉箭头,只显示一条竖线?

qt QComboBox mac下下拉的圆角如何去掉

qtcombobox的背景颜色越过下拉

qt 中 QComboBox的下拉的按钮 怎么调整大小请高手解答

QT中QComboBox如何不显示那个黑色的小箭头?