• 9704阅读
  • 8回复

qlistview 选中点击事件处理! [复制链接]

上一主题 下一主题
离线leafies
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-07
qlistview有click和doubleclick2个信号,

我现在需要实现鼠标点击item时的鼠标事件,我用iconmode 模式,从数据中读取相应缩略图路劲并显示
但是点击事件怎么处理
我用 connect(list,SIGNAL(clicked(QModelIndex)),this,SLOT(itemClicked(QModelIndex)));

然后 itemClicked 中
itemClicked(QModelIndex index){
qDebug() << index.data().string();
}
得到是空值!

我现在想处理的是 因为是从数据库中读取出来的,所以点击相应的 item 时 要在数据库中查找这个item 对的信息,所以现在 怎么在这个曹函数中处理这个,或者个说怎么获取点击这个item的一些属性方便从数据库中读取相应的信息!
离线wxj120bw

只看该作者 1楼 发表于: 2011-12-07
回 楼主(leafies) 的帖子
data()函数的原型 QVariant QModelIndex::data ( int role = Qt::DisplayRole ) const 注意该参数
还有qt手册有句话 The QModelIndex class is used to locate data in a data model

PS:qlistview到底显示什么
离线leafies
只看该作者 2楼 发表于: 2011-12-08
回 1楼(wxj120bw) 的帖子
qlistview 显示的是数据库中图片的缩略图 !
我想做个图片列表,并且点击缩略图可以弹出对应的图的其他信息 !~·
离线wxj120bw

只看该作者 3楼 发表于: 2011-12-08
回 2楼(leafies) 的帖子
qlistview显示数据库中指定的图片 点击图片 显示数据库存储的其他信息 是吧?
显示图片已经做完了吗 现在只剩下怎么点击图片找数据库对应的其他信息吗?
离线leafies
只看该作者 4楼 发表于: 2011-12-08
回 3楼(wxj120bw) 的帖子
是的
显示已经做完了
只剩下怎么 处理点击事件 并查找相应的信息了  
离线wxj120bw

只看该作者 5楼 发表于: 2011-12-08
回 4楼(leafies) 的帖子
你参考下面链接的文章 对Qt::UserRole处理
http://blog.csdn.net/iamdbl/article/details/2308645
离线leafies
只看该作者 6楼 发表于: 2011-12-08
我参照做了 但是还是获取的是  0  要不就是 为空 !~~
有没有更详细的实例看看那
离线wxj120bw

只看该作者 7楼 发表于: 2011-12-08
回 6楼(leafies) 的帖子
你设置了Qt::UserRole的数据吗
离线weihua1984

只看该作者 8楼 发表于: 2011-12-11
QStandardItem *item1 = new QStandardItem(QIcon(":/images/lib.png"));
item1->setData(strData + QString(G_LIB_SUFFIX));

model = new QStandardItemModel(9,1);
model->setItem(0,item1);

listView->setViewMode(QListView::IconMode);
listView->setMovement(QListView::Static);
listView->setModel(model);
connect(listView,SIGNAL(clicked(QModelIndex)),this,SLOT(onClicked(QModelIndex)));




void FileTypeDialog::onClicked(QModelIndex index)
{
    QStandardItem *item = model->itemFromIndex(index);
    if(item)
    {
        this->m_strFileType = item->data().toString();
    }
}
快速回复
限100 字节
 
上一个 下一个