Qt控件--QComboBox存储自定义数据

添加具有用户数据的项

QComboBox::addItem()函数的两种参数的原型定义如下:

void addItem (const QString &text, const QVariant &userData = QVariant())
void addItem (const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
不管是哪一个addItem()函数,后面都有一个可选的QVariant类型的参数userData,可以利用这个变量存储用户定义数据。
 

void TaskInfo::InitCombox()
{
    //初始化具有自定义数据的ComboBox
    QMap format;
    format.insert("线性幅度",   "MLINear");
    format.insert("对数幅度",   "MLOGarithmic");
    format.insert("相位",      "PHASe");
    format.insert("虚部",      "IMAGinary");
    format.insert("实部",      "REAL");
    format.insert("极坐标",    "POLar");
    format.insert("史密斯圆图", "SMITh");
    format.insert("驻波比",    "SWR");
    format.insert("群延迟",    "GDELay");
    format.insert("展开相位",  "UPHase");
    format.insert("正相位",    "PPHase");
    format.insert("阻抗",     "IMPed");

    ui->data_format->clear();
    foreach(const QString &str,format.keys())
    {
        ui->data_format->addItem(str,format.value(str));
    }
}

QComboBox列表项的访问

QComboBox存储的项是一个列表,但是QComboBox不提供整个列表用于访问,可以通过索引访问某个项。访问项的一些函数主要有以下几种。


int currentIndex()

返回当前项的序号,第一个项的序号为0。


QString currentText()

返回当前项的文字。


QVariant currentData(int role = Qt::UserRole)

返回当前项的关联数据,数据的缺省角色为role = Qt::UserRole,角色的意义在5.1节详细介绍。


QString itemText(int index)

返回指定索引号的项的文字。


QVariant itemData(int index, int role = Qt::UserRole)

返回指定索引号的项的关联数据。


int count()

返回项的个数。
在一个QComboBox组件上选择项发生变化时,会发射如下两个信号:

void currentIndexChanged(int index)
void currentIndexChanged(const QString &text)
 

你可能感兴趣的:(QT,qt,开发语言)