用了
void UserTreeWidget::mouseDoubleClickEvent(QMouseEvent* event)
{
if (event->type() == QEvent::MouseButtonDblClick){
m_pTempItem=dynamic_cast<UserTreeWidgetItem*>(itemAt(event->pos()));
if(m_pTempItem != NULL)
emit getClientIDList(m_pTempItem->getNodeID());}
signal emit else
QAbstractItemView::mouseDoubleClickEvent(event);
}
connect: connect(ui.treeWidget,
SIGNAL(getClientIDList(const NodeID_t&)),
this,
SLOT(on_getClientIDList(const NodeID_t&)));
slto function:void Client::on_getClientIDList(const NodeID_t& NodeID)
{
LOG_TRACE("Client::on_getClientIDList start");
SAFESOAPCALL_START(return;)
QStringList nameList;
nameList.clear();
std::list<std::string> ClientList;
SAFESOAPCALL_OKONLY(getClientIDList(clientID, NodeID,ClientList),return;)
QList<std::string> clients= QList<std::string>::fromStdList(ClientList);
for (QList<std::string>::iterator it = clients.begin();
it!= clients.end(); it++)
{ nameList.append((*it).c_str());
}
QStringListModel nameModel;
nameModel.setStringList(nameList);
ui.listView->setModel(&nameModel);
connect(ui.listView,SIGNAL(doubleClicked(QString &)),ui_ChatDialog.inputTextEdit,SLOT(sendMessage(QString &)));
}
debug后, doubleclick以后 signal有反应了, 但是原来可以展开的item展开不了了
是因为有冲突么?
Listview里的doubleclick可以这么用么?
[ 此帖被winmo在2009-10-18 00:19重新编辑 ]