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);
转载于:https://www.cnblogs.com/svenzhang9527/p/9657825.html