2012-04-28 109 views
0

我想要做的是从sql数据库中获取输入并将所有这些数据放在QListWidget中,但我不知道它们中会有多少数据,我还需要知道单击时点击其中一个的ID。动态地在QListWidget中插入项目

任何想法?

回答

1

如果str是从SQL查询标签,n是那么ID:

QListWidgetItem* i = new QListWidgetItem(str); 

设置ID用:

i->setData(Qt::UserRole, n); 

,并添加

与创建项目它的部件:

myListWidget->addItem(i); 

那么它的点击时,你会得到信号

void QListWidget::itemActivated (QListWidgetItem * item) [signal] 

在你的类此接口连接缝隙,

item->data(Qt::UserRole).toInt(); 

获得ID回不过这也是使用QTableView中和QSqlQueryModel的好时机。

+0

在这种情况下QTableView会更好用吗? – lpostula 2012-04-28 07:51:28

+1

Qt4中的QTableWidget是Qt3中最接近QListView的东西。使用Widget类比View类更快,但View类非常酷,如果你不需要在视图中内联编辑sql表,那么QTableView和QSqlQueryModel可能是你最好的选择。 – Julian 2012-04-28 08:03:11

+0

好的,谢谢,我会读到关于QSqlQueryModel的,所以,谢谢 – lpostula 2012-04-28 08:05:03