как позволить дочернему виджету обрабатывать QKeyEvent? - PullRequest
0 голосов
/ 02 октября 2011

Я использую QTabWidget в качестве centralWidget в QMainWindow, однако keyPressEvent () не сработает ни в каком дочернем виджете QTabWidget, если я попробую следующее в QMainWindow :: keyPressEvent (), произойдет сбой. 1001 *

void Window::keyPressEvent(QKeyEvent *e) {
    QApplication::sendEvent( centralWidget->currentWidget() , e );
}

Окно является экземпляром QMainWindow.

Как правильно разрешить дочерним процессам обрабатывать эти события вместо родительских виджетов?

1 Ответ

2 голосов
/ 02 октября 2011

Если дочерний виджет предназначен для приема и обработки событий нажатия клавиш, он получит их, если имеет фокус клавиатуры. Если это пользовательский или вложенный виджет, вам нужно будет сделать несколько других вещей, помимо переопределения дочернего виджета keyPressEvent(), как описано здесь .

...