×
Namespaces

Variants
Actions

Using UserData in Qt's list Widgets

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Tested with
Devices(s): Emulator / desktop / device
Compatibility
Platform(s): All Qt Supported
Symbian
Article
Keywords: QComboBox, Qt::UserRole,
Created: Avis (30 Nov 2010)
Last edited: hamishwillee (11 Oct 2012)

Overview

This example shows how to store and use UserData in Qt's list Widgets like QComboBox and others. A combo box can be used to show the current items like a list widget.

Usually we operate with pairs of values - visible text data and hidden value, bounded to that text (something like ID, for example). Let's see how this works.

Header

#include <QComboBox>

Source

First of all let's fill the list.

// get the refence to QComboBox for filling
void MainWindow::fillBox(QComboBox* &aBox)
{
aBox->clear();
// text value - visible to User
QString aStringValue;
// hidden Int value - string ID
int id;
// filling loop
for (int i = 0; i< 100; i++)
{
id = i+1;
aStringValue = QString("Value number %1").arg(QString::number(id));
// first param - caption of Item, second param - user Data of any type
aBox->addItem(aStringValue, id);
}
}

Function, searching and activating Item with ID = aID

// get the refence to QComboBox and value of ID to find
void MainWindow::findById(const int aID, QComboBox* &aBox)
{
// find the number of item by it's hidden UserValue
int i = aBox->findData(aID, int(Qt::UserRole)); // value of hidden param is treated as INT
// set founded item to be current
aBox->setCurrentIndex(i);
}

Now, if we want to show in ComboBox line with attribute ID = 56, just call the search function

    findById(56,ui->comboBox);

--Avis 13:04, 30 November 2010 (UTC)

This page was last modified on 11 October 2012, at 04:18.
81 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×