Tim- On Macintosh, cmd-. is the cancel signal, like ctrl-break in Windows, or Ctrl-C for Linux. In fact, when building with Qt and Cocoa, you don't get it at all because Cocoa eats it up. We went to somewhat extreme lengths to intercept cmd-. so that we can use it to cancel user programs (our application includes a user programming language).
You really should NOT use cmd-. as anything other than a cancel signal. Here is what we did to get access to cmd-. key events: In a .mm file: bool WMNSEventIsCmdPeriodKeyDown(void * event) { NSEvent * nsevent = reinterpret_cast<NSEvent *>(event); if ([nsevent type] == NSKeyDown) { if ([nsevent modifierFlags] & NSCommandKeyMask) { NSString * chars = [nsevent charactersIgnoringModifiers]; return [chars characterAtIndex:0] == 0x2E; // Unicode encoding for period } } return false; } bool WMNSEventIsCmdPeriodKeyUp(void * event) { NSEvent * nsevent = reinterpret_cast<NSEvent *>(event); if ([nsevent type] == NSKeyUp) { if ([nsevent modifierFlags] & NSCommandKeyMask) { NSString * chars = [nsevent charactersIgnoringModifiers]; return [chars characterAtIndex:0] == 0x2E; } } return false; } Then, with Qt 5, we define a macintosh event filter class: class macEventFilterClass : public QObject, public QAbstractNativeEventFilter { Q_OBJECT public: bool nativeEventFilter(const QByteArray&, void* message, long*); signals: void caughtCancelEvent(bool isDown); }; bool macEventFilterClass::nativeEventFilter(const QByteArray &, void * message, long *) { bool result = false; if (WMNSEventIsCmdPeriodKeyDown(reinterpret_cast<void *>(message))) { emit caughtCancelEvent(true); result = true; } else if (WMNSEventIsCmdPeriodKeyUp(reinterpret_cast<void *>(message))) { emit caughtCancelEvent(false); result = true; } return result; } and in our QApplication-derived class constructor, we install it on the application: _macEventFilterObject = new macEventFilterClass; connect(_macEventFilterObject, SIGNAL(caughtCancelEvent(bool)), this, SLOT(_caughtMacCancelEvent(bool))); installNativeEventFilter(_macEventFilterObject); On Sep 3, 2014, at 2:38 PM, Tim Blechmann <t...@klingt.org> wrote: > hi all, > > i wonder, does ctrl-. (as in cmd-.) have any special treatment in qt5? > i'd like to use it a shortcut of an action which is available from the > menu bar, but it does not get triggered. otoh, in QFileDialog and the > like get seem to trigger the "cancel" button. > > any idea how use it for application-defined shortcuts? > > thnx, > tim > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest Regards, John Weeks WaveMetrics, Inc. Phone (503) 620-3001 Fax (503) 620-6754 email supp...@wavemetrics.com _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest