Platform-Specific Functions

Qt provides a few low-level global functions for fine-tuning applications. Most of these perform very specific tasks and are platform-specific. In general, we recommend that you try using Qt's public API before resorting to using any functions mentioned here.

These functions are exported by QtCore and QtGui, but most of them aren't declared in Qt's header files. To use them in your application, you must declare them before calling them. For example:

#ifdef Q_WS_X11
void qt_x11_wait_for_window_manager(QWidget *widget);
#endif

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    ...
    window.show();
#ifdef Q_WS_X11
    qt_x11_wait_for_window_manager(&window);
#endif
    ...
    return app.exec();
}

These functions will remain as part of Qt for the lifetime of Qt 4.

Functions:

void qt_set_library_config_file(const QString &fileName)

Specifies the location of the Qt configuration file. You must call this function before constructing a QApplication or QCoreApplication object. If no location is specified, Qt automatically finds an appropriate location.

void qt_set_sequence_auto_mnemonic(bool enable)

Specifies whether mnemonics for menu items, labels, etc., should be honored or not. On Windows and X11, this feature is on by default; on Mac OS X, it is off. When this feature is off, the QKeySequence::mnemonic() function always returns an empty string. This feature is also enabled on embedded Linux.

void qt_x11_wait_for_window_manager(QWidget *widget)

Blocks until the X11 window manager has shown the widget after a call to QWidget::show().

void qt_mac_secure_keyboard(bool enable)

Turns the Mac OS X secure keyboard feature on or off. QLineEdit uses this when the echo mode is QLineEdit::Password or QLineEdit::NoEcho to guard the editor against keyboard sniffing. If you implement your own password editor, you might want to turn on this feature in your editor's focusInEvent() and turn it off in focusOutEvent().

void qt_mac_set_dock_menu(QMenu *menu)

Sets the menu to display in the Mac OS X Dock for the application. This menu is shown when the user attempts a press-and-hold operation on the application's dock icon or Ctrl-clicks on it while the application is running.

The menu will be turned into a Mac menu and the items added to the default Dock menu. There is no merging of the Qt menu items with the items that are in the Dock menu (i.e., it is not recommended to include actions that duplicate functionality of items already in the Dock menu).

void qt_mac_set_menubar_icons(bool enable)

Specifies whether icons associated to menu items for the application's menu bar should be shown on Mac OS X. By default, icons are shown on Mac OS X just like on the other platforms.

In Qt 4.4, this is equivalent to QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus);.

void qt_mac_set_menubar_merge(bool enable)

Specifies whether Qt should attempt to relocate standard menu items (such as Quit, Preferences, and About) to the application menu on Mac OS X. This feature is on by default. See Qt for Mac OS X - Specific Issues for the list of menu items for which this applies.

void qt_mac_set_native_menubar(bool enable)

Specifies whether the application should use the native menu bar on Mac OS X or be part of the main window. This feature is on by default.

In Qt 4.6, this is equivalent to QApplication::instance()->setAttribute(Qt::AA_DontUseNativeMenuBar);.

void qt_mac_set_press_and_hold_context(bool enable)

Turns emulation of the right mouse button by clicking and holding the left mouse button on or off. This feature is off by default.

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.