一個(gè)程序,使用了QTreeWidget,點(diǎn)擊每個(gè)item時(shí),分別有鼠標(biāo)左鍵和右鍵功能。其中右鍵彈出菜單,左鍵需要更新數(shù)據(jù)之類的其中右鍵重寫了contextMenuEvent函數(shù)左鍵使用了signal itemClicked(QTreeWidgetItem*,int)現(xiàn)在的問題是:winXp下,點(diǎn)擊右鍵也會(huì)emit itemClicked這個(gè)信號(hào)。導(dǎo)致我每次彈出右鍵菜單的時(shí)候,都會(huì)更新一般數(shù)據(jù),這樣就導(dǎo)致我的程序在彈出菜單時(shí)效率很低。不知道有沒有什么好的辦法解決?或者讓itemClicked只相應(yīng)左鍵菜單?問題已解決,重新定義一個(gè)類myTreeView,繼承QTreeView;然后再重新定義mousePressEvent事件和信號(hào)函數(shù),在mousePressEvent里判斷左右鍵。簡(jiǎn)單實(shí)現(xiàn)如下:void myTreeView::mousePressEvent(QMouseEvent *event){QTreeView::mousePressEvent(event);QModelIndex index = currentIndex();if(event->buttons() == Qt::LeftButton) {emit click(index);}}
你好,關(guān)于Qt QTreeView clicked函數(shù)該如何區(qū)分左右鍵的問題?
天涯盡頭無女友
2022-03-19 09:05:56