我是Qt的新手。似乎多選qgraphicsitem的默認設置是按下ctrl按鈕。 但是可以禁用此功能嗎?或者重新加載這個功能?如何禁用qgraphicsitem的多重選擇?
1
A
回答
2
這由項目的標誌控制。要禁用選擇特定項目,請
item->setFlag(QGraphicsItem::ItemIsSelectable, false);
如果你想完全地禁用了QGraphicsScene
不管項目標誌的選擇項目我建議QGraphicsScene::selectionChanged
連接到QGraphicsScene::clearSelection
。
如果要禁用多項選擇,我建議如下:
- 子類QGraphicsScene和保持一個指針
lastSelection
到的QGraphicsItem左右 - 創建連接到
QGraphicsScene::selectionChanged
- 檢查
selectedItems
插槽:- 它是空的:無所事事(=沒有選擇)
- cont AINS只有
lastSelection
:沒事幹(=選擇並沒有真正改變) - 包含了一個項目,而不是
lastSelection
:設置lastSelection
到(選擇首次=一個項目),該項目 - 包含兩個項目:一根絕是
lastSelection
。從選擇中刪除一個(lastSelection->setSelected(false);
),將lastSelection
設置爲剩餘項目。 (=選擇另一個項目時,移動選擇到它)
您可能需要修改所述插槽內的選擇期間以阻止信號。
1
禁用多項選擇最簡單的方法是:
- 從
QGraphicsItem
創建您自己的Dirived類。 超載保護
mousePressEvent
功能和禁用ControlModifier
:protected: void YourOwnQGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE { if(mouseEvent->modifiers() & Qt::ControlModifier) { mouseEvent->ignore(); } else { QGraphicsItem::mousePressEvent(mouseEvent); //Do what you want... } }
相關問題
- 1. 多重選擇,禁用選項
- 2. 如何禁用MD-選擇
- 3. HTML,多選框,選擇禁用
- 4. 如何禁用多選或更改選擇事件?
- 5. 如何在選擇中禁用並選擇選項的樣式?
- 6. 如何根據其他選擇的選項禁用選擇?
- 7. jqGrid的。在編輯模式下禁用多重選擇
- 8. iPhone:如何禁用UIWebView的選擇
- 9. 如何禁用DropDownList ASP.NET MVC的選擇?
- 10. 如何根據另一選擇選項禁用選擇選項
- 11. 如何凸顯多重選擇?例如
- 12. 如何選擇一個QGraphicsItem而不選擇整個組(該項目所屬)
- 13. 使用jQuery禁用多個選擇
- 14. 如何使用.change來禁用選擇
- 15. SWT TableViewer無選擇的多重選擇
- 16. 基於另一個多重選擇的多重選擇
- 17. WPF DataGrid:禁用多列選擇
- 18. 無法禁用jQuery多選擇
- 19. 如何禁用wxGrid中的多選?
- 20. 如何禁用Mailchimp雙選擇PHP
- 21. 如何禁用jNiceIt選擇標籤?
- 22. 如何禁用MobileSafari自動選擇?
- 23. 如何禁用角度選擇視圖?
- 24. 多重選擇p:dataTable
- 25. 多重選擇上
- 26. VueJS多重選擇
- 27. 多重選擇DQL
- 28. UITableView多重選擇
- 29. 如何在多個UI選擇角js中禁用默認值
- 30. jquery ui多日期選擇器:如何禁用滑動effeccT
嗨,但我還是想保持正常的選擇能力,我只想禁用多項選擇... – Nyaruko 2014-10-07 06:21:38
看到我的編輯答案。 – dom0 2014-10-07 08:39:29
感謝您的回答。 – Nyaruko 2014-10-07 13:50:50