2
我想阻止control+A
快捷方式選擇QTableView中的所有文件,我想使它只能使用鼠標進行選擇,但不能使用鍵盤快捷方式。現在我的eventFilter
代碼如下。你能否建議我採取這種方式?如何禁用控制+ QTableView的快捷方式,並防止選擇所有選項?
bool MainWindow::eventFilter(QObject* obj, QEvent *ev)
{
if(ev->type() == QEvent::MouseButtonPress)
{
if(obj == ui->listOfImages->viewport())
{
QMouseEvent * mouseEv = static_cast<QMouseEvent*>(ev);
if((mouseEv->buttons() & Qt::LeftButton) && (QApplication::keyboardModifiers().testFlag(Qt::ControlModifier) == true))
{
controlButtonCounter++;
fetch = true;
return QObject::eventFilter(obj,ev);
}
else if((mouseEv->buttons() & Qt::LeftButton) && (QApplication::keyboardModifiers().testFlag(Qt::ControlModifier) == false))
{
if(selectedImages.size()>0)
{
ui->listOfImages->clearSelection();
selectedImages.clear();
selectedList.clear();
ui->selectedFiles->clear();
ui->selectedFiles->show();
}
fetch = false;
controlButtonCounter = 0;
}
}
}
return QObject::eventFilter(obj,ev);
}
即使允許CTRL + A組合,是否將'selectionMode'設置爲'QAbstractItemView :: SingleSelection'工作?基本上,它應該防止選擇多行。 –
您需要檢查按下Ctrl + A組合鍵是否發生按鍵事件,並返回true,即過濾事件。 – vahancho
對不起,我如何檢查Ctrl + A是否被按下?我看不到任何方法來做到這一點。 @vahancho –