Как обнаружить модифицирующую клавишу по щелчку мышью в QT

Хорошо, я прочитал документацию Selenium на github.io и нашел это ..

enter image description here

В нем говорится, что мы должны использовать точку перед XPath для относительного пути. Это был мой первоначальный инстинкт, но в предыдущих работах у меня были ошибки при использовании этой точки. Попробую еще раз и обновлю мой ответ.

Обновление * Это исправлено!

Found document: 
    Title - City Council Public Hearing
    Date - MARCH 25, 2019
    Link - https://drive.google.com/uc?export=download&id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
Found document: 
    Title - City Council Meeting (Regular)
    Date - MARCH 11, 2019
    Link - https://drive.google.com/uc?export=download&id=1bc1MBr_M10fJOVTkQTML7LFLzz_c28HB
Found document: 
    Title - City Council (Special)
    Date - MARCH 11, 2019
    Link - https://drive.google.com/uc?export=download&id=1odnxBz6oHps5C66mHCcijx2YS_y7jgM_
Found document: 
    Title - City Council Meeting (Regular) - Business Mtg. at 5:30 p.m. & Ceremonial at 7:00 p.m.
    Date - FEBRUARY 25, 2019
    Link - https://drive.google.com/uc?export=download&id=13NBhYiRDrw2egi6iRHLgI-BlRjYIr95N

29
задан troyane 30 May 2014 в 13:33
поделиться

3 ответа

Попробуйте QApplication :: keyboardModifiers () , который всегда доступен

В Qt 5 попробуйте QGuiApplication :: keyboardModifiers () .

33
ответ дан 28 November 2019 в 01:27
поделиться

это действительно раздражает, мне нужно установить 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);
}
4
ответ дан tfl 28 November 2019 в 01:27
поделиться

Состояние клавиш-модификаторов клавиатуры можно узнать, вызвав функцию modifiers(), унаследованную от QInputEvent.

http://doc.qt.io/qt-5/qmouseevent.html

8
ответ дан 28 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: