我有一個QTableWidget
,並希望按下CTRL,同時點擊列標題標記整個列。要獲得列索引不是問題,因爲有一個sectionPressed信號,它給了我點擊的列的當前索引。如何在單擊列時獲取鍵盤修飾符的狀態?如何檢測修改鍵在Qt中的鼠標點擊
回答
嘗試QApplication::keyboardModifiers()它始終可用
在Qt 5上,請嘗試QGuiApplication::keyboardModifiers()。
可以通過調用從QInputEvent繼承的modifiers()函數來找到鍵盤修飾鍵的狀態。
我知道,但我有關聯的插槽內沒有對象sectionPressed其他則列索引。沒有事件,沒有發件人,沒有。 – tfl 2010-06-23 08:50:04
也許你可以在mouseReleaseEvent中保存修飾符狀態,這應該發生在信號之前。 – 2010-06-23 09:11:35
這實在是煩人,我必須安裝一個eventFilter並刪除sectionPressed處理
ui->tableWidget->horizontalHeader()->viewport()->installEventFilter(this);
內eventFilter我可以請檢查是否一個鍵被按下,像這樣
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress)
{
if(Qt::ControlModifier == QApplication::keyboardModifiers())
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if(mouseEvent)
{
if(mouseEvent->button()== Qt::LeftButton)
{
ui->tableWidget->selectColumn(ui->tableWidget->itemAt(mouseEvent->pos())->column());
return true;
}
}
}
}
return QWidget::eventFilter(object,event);
}
這適用於我。
if (QApplication::keyboardModifiers().testFlag(Qt::ControlModifier) == true) {
您可以使用QGuiApplication::queryKeyboardModifiers()
這是更簡單的使用方法:
if(QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier))
{
// Do a few things
}
- 1. 如何檢測鼠標中鍵點擊?
- 2. 如何檢測鼠標點擊python 3.6.1
- 3. 如何檢測鼠標點擊QLineEdit
- 4. 如何檢測鼠標點擊
- 5. GLUT鼠標點擊檢測
- 6. 檢測鼠標點擊
- 7. SFML鼠標點擊檢測
- 8. Qt雙擊檢查左鍵鼠標
- 9. 檢測到鼠標點擊並沒有在javascript中的鼠標點擊
- 10. 如何檢測鼠標點擊在pyside中繪製的橢圓?
- 11. 在NetLogo中檢測鼠標點擊/鼠標上移
- 12. 我可以檢測鼠標左鍵嗎?或Ctrl +右鍵點擊?
- 13. 如何檢測WPF中的鼠標雙擊左鍵?
- 14. Qt鼠標點擊檢測一直不能工作
- 15. 如何在GtkComboBox中檢測鼠標點擊?
- 16. 如何在vb.net中檢測鼠標點擊?
- 17. 檢測鼠標右鍵何時被點擊
- 18. 檢測鼠標點擊時的移動,並檢測雙擊
- 19. VB.NET:如何檢測集中控制之外的鼠標點擊
- 20. 如何檢測jQuery中的鼠標點擊位置
- 21. 如何檢測Javascript中的側滑鼠標點擊?
- 22. 如何檢測在Linux上的Python 3鼠標點擊?
- 23. Qt - 鍵盤按鍵做與鼠標點擊相同的東西
- 24. 測試在C++中鼠標左鍵和右鍵點擊
- 25. 檢測用戶的鼠標點擊並輸入按鍵
- 26. 檢測點擊鼠標動作
- 27. 檢測鼠標點擊最後一排
- 28. 檢測多個鼠標點擊
- 29. wxPython:檢測鼠標點擊位圖
- 30. 檢測鼠標點擊事件
我發現了這一切 – tfl 2010-06-24 05:29:40
現在我偶然發現了這個答案!在我把所有東西都改寫成凌亂的子類之後,我就可以看到事件對象:-)哦,哦! – 2013-05-02 17:38:55
與@Freedom_Ben類似,我也在查看所有提示子類或事件過濾器的示例......但是由於我的持久性(可能是懶惰:P),我找到了這個答案。像魅力一樣......就像我想要的一樣!感謝Roku的幫助! – zeFree 2013-05-09 06:13:16