Настройте QListWidgetItem с дополнительными данными для хранения, как?

QListWidgetItem содержит 2 данных: значок и текст. И я хочу сохранить в нем еще одну QString. Как я могу сделать? Вот мой тестовый код. ListWidget ничего не отображает после того, как я вызываю addItem.

И как я могу узнать, какой элемент был нажат? Функция SLOT - это "void on_listWidget_itemClicked (QListWidgetItem * item)". Очевидно, что параметром является родительский класс: QListWidgetItem, НЕ подкласс: ListWidgetItem

ListWidgetItem::ListWidgetItem(const QIcon &icon, const QString &text,QString &ip, QListWidget *parent, int type)
{
    myip = ip;
    QListWidgetItem::QListWidgetItem(icon,text,parent,type);
}

ListWidgetItem::~ListWidgetItem()
{

}

QVariant ListWidgetItem::data(int role) const
{
    if (role==IPROLE)
    {
        return myip;
    }
    return QListWidgetItem::data(role);
}

void ListWidgetItem::setData(int role, const QVariant &value)
{
    if (role==IPROLE)
    {
        myip = value.toString();
    }
    QListWidgetItem::setData(role,value);
}
5
задан Exa 4 May 2011 в 13:11
поделиться