• 4350阅读
  • 0回复

把itemsdoubleclick换成mouseDoubleClickEvent解决了一个问题又有一个问题 [复制链接]

上一主题 下一主题
离线winmo
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-17
用了
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重新编辑 ]
快速回复
限100 字节
 
上一个 下一个