在QT中将元素插入listview的问题

时间:2010-02-23 05:36:53

标签: qt listview qt4 symbian nokia

HI ..

我想在QT中为symbian OS动态添加元素到listview,我有一组与listview相关联的委托方法。

如果我静态添加元素,控件将委托方法,并且视图是完美的。

但如果我动态添加,控制根本不会委托方法。

我不知道怎么做。这里有一些示例代码,这就是我如何添加元素。

这就是我设置视图的方式,

 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);

请建议我,我在添加elemetns时遇到了什么错误

1 个答案:

答案 0 :(得分:3)

我刚在我的应用程序中创建了这个快速示例,它正在运行,也许它会给你一个提示:

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

listView->setModel(ListModel);

总之,您只需在模型上添加一行即可!它应该解决你的问题!

如果我错过了什么,请告诉我!