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时遇到了什么错误
答案 0 :(得分:3)
我刚在我的应用程序中创建了这个快速示例,它正在运行,也许它会给你一个提示:
QStandardItem* Items = new QStandardItem("Avatar");
QStandardItemModel* ListModel = new QStandardItemModel();
ListModel->appendRow(Items);
listView->setModel(ListModel);
总之,您只需在模型上添加一行即可!它应该解决你的问题!
如果我错过了什么,请告诉我!