crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Отсутствует свойство типа void* в QTreeWidgetItem
Darvin
  опции профиля:
сообщение 5.12.2007, 11:44
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 36
Регистрация: 30.11.2007
Пользователь №: 30

Спасибо сказали: 0 раз(а)




Репутация:   0  


Не могу найти у QTreeWidgetItem свойство типа void* для связывания с произвольным экземпляром данных.
В других библиотеках, как правило, есть подобное свойство у класса Узла дерева.
Неужели единственный выход это наследование и созднание собственного класса?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 5.12.2007, 16:56
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Пример того, как обращаться в QVariant спользовательским типом:
#include <QtCore/QCoreApplication>

#include <QString>
#include <QStringList>
#include <QVariant>

struct MyStruct
{
    QStringList m_listData;
};

Q_DECLARE_METATYPE(MyStruct)

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    MyStruct ms;
    for( int n = 0; n < 10; n++)
    {
        QString sz;
        sz.sprintf( "test string %d", n);
        ms.m_listData.append( sz);
    }

    QVariant v;
    v.setValue( ms);

    MyStruct newms;
    if( v.canConvert<MyStruct>())
    {
        newms = v.value<MyStruct>();

        qDebug( "List strings");
        QStringList::iterator pIter;
        for( pIter = newms.m_listData.begin(); pIter != newms.m_listData.end(); pIter++)
        {
            qDebug( "\t%s", qPrintable( *pIter));
        }
    }

    return a.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Darvin
  опции профиля:
сообщение 10.12.2007, 14:22
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 36
Регистрация: 30.11.2007
Пользователь №: 30

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 5.12.2007, 16:56) *
Пример того, как обращаться в QVariant спользовательским типом:
MyStruct ms;
QVariant v;
MyStruct newms;


1)Можно ли обойтись без статического объявления?
2)В приведенном примере будет происходить копирование данных, а мне нужен только указатель на них.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.12.2024, 12:18