On Oct 11, 2018, at 8:36 AM, Israel Brewster <ibrews...@flyravn.com<mailto:ibrews...@flyravn.com>> wrote:
On Oct 11, 2018, at 2:54 AM, Frederik Christiani via Interest <interest@qt-project.org<mailto:interest@qt-project.org>> wrote: On 11-10-2018 02:02, Tony Rietwyk wrote: Hi Israel, Try installEventFilter on the menu to see the KeyPress events before they are handled by the menu. In the eventFilter you'll want to look at the events of type QEvent::ShortcutOverride. Remember to accept() the event if you don't want the shortcut action triggered. Ok, I tried with using an eventFilter, as per the documentation at http://doc.qt.io/qt-5/qobject.html#installEventFilter. As a test, I used their example code exactly for the implementation of the KeyPressEater class. I tried this in two ways: 1) installing the event filter on my QMenuBar object, and 2) installing the eventFilter on the base QApplication object, as per the documentation at http://doc.qt.io/qt-5/eventsandfilters.html#event-filters, which says: "It is also possible to filter all events for the entire application, by installing an event filter on the QApplication or QCoreApplication object. Such global event filters are called before the object-specific filters." When installed on my QMenuBar object, the eventFilter function was *never* called, as far as I can determine. When installed on the QApplication object, the eventFilter function *was* called as expected - right up until I activated a menu. ANY menu - even the Apple menu. At that point, the eventFilter function stopped receiving events. I am running Qt 5.9.6 on MacOS X 10.13 and 10.14 (tried both with the same behavior). It sort of appears that the system is taking over the menu bar entirely, such that events simply don't make it to my application *at all* when the menu is activated. Is something like that a possibility? In digging deeper into the documentation, I found this: http://doc.qt.io/qt-5/osx-issues.html#limitations, which states: "QMenu objects used in the native menu bar are not able to handle Qt events via the normal event handlers. Install a delegate on the menu itself to be notified of these changes" So I guess I need to install a delegate on the menu itself. Can someone point me to the documentation for that? Thanks. ----------------------------------------------- Israel Brewster Systems Analyst II 5245 Airport Industrial Rd Fairbanks, AK 99709 (907) 450-7293 ----------------------------------------------- ----------------------------------------------- Israel Brewster Systems Analyst II 5245 Airport Industrial Rd Fairbanks, AK 99709 (907) 450-7293 ----------------------------------------------- Kind regards, Frederik -- Frederik Christiani Viking Software https://www.vikingsoftware.com/ _______________________________________________ Interest mailing list Interest@qt-project.org<mailto:Interest@qt-project.org> http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org<mailto:Interest@qt-project.org> http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest