Проблема при вставке элемента в просмотр списка в QT - PullRequest
1 голос
/ 23 февраля 2010

HI ..

Я хочу динамически добавлять элементы в просмотр списка в QT для Symbian OS, у меня есть набор методов делегатов, связанных с просмотром списка.

если я добавляю элементы статически, элемент управления переходит к методам делегата, и представление становится идеальным.

но если я добавлю динамически, управление вообще не будет делегировать методы.

Я не знаю, как это сделать. Приведу пример кода, вот как я добавляю элементы.

так я настраиваю вид,

 MylistView = new QListView();

 QDesktopWidget* desktopWidget = QApplication::desktop();
 QRect clientRect = desktopWidget->geometry();

        MylistView->setMinimumSize(QSize(clientRect.width()-7,clientRect.height()-1));

     MylistView->setViewMode(QListView::ListMode);
     MylistView->setMovement(QListView::Free);
     MylistView->setItemDelegate(new ItemDeligate(MylistView));
     MylistView->setSelectionMode(QAbstractItemView::SingleSelection);
     bool val =GreenPixmap.load(":/new/prefix1/temp/test.png");

     ListModel = new QStandardItemModel();
     ListModel->appendColumn(ItemList);

     MylistView->setModel(ListModel); 
     Listlayout.addWidget(MylistView);
     Listlayout.addWidget(MylistView);
     this->setLayout(&Listlayout);
     AddItemMenu = new QAction("Add",this);                  
     menuBar()->addAction(AddItemMenu);      
     val = connect(AddItemMenu,SIGNAL(triggered()),this,SLOT(addItem()));

Это то, как я добавляю динамически, когда происходит событие щелчка (т.е. динамическое добавление элементов)

    QStandardItem *Items = new QStandardItem(QIcon(GreenPixmap),"Avatar");
        Items->setData("WAKE UP",ItemDeligate::SubTextRole);
        ItemList.append(Items);

        ListModel->appendColumn(ItemList);

подскажите, пожалуйста, какую ошибку я делаю при добавлении элементов

1 Ответ

3 голосов
/ 23 февраля 2010

Я только что сделал этот быстрый пример в своем приложении, оно работает, может быть, оно даст вам подсказку:

QStandardItem* Items = new QStandardItem("Avatar");
QStandardItemModel* ListModel = new QStandardItemModel();
ListModel->appendRow(Items);

listView->setModel(ListModel);

Таким образом, вы должны просто добавить строку к вашей модели! Это должно исправить вашу проблему!

Если я что-то пропустил, дайте мне знать!

...