Difference between revisions of "How to Add Options Menu in Symbian Application"

From Qt Wiki
Jump to: navigation, search
(Add "cleanup" tag)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}

Revision as of 15:46, 3 March 2015

EnglishБългарски [toc align_right="yes" depth="2"]

How to Add Options Menu in Symbian Application

Options menu and Exit button can be attached to "QMainWindow":http://doc.qt.nokia.com/latest/qmainwindow.html, "QDialog":http://doc.qt.nokia.com/latest/qdialog.html or to "QWidget":http://doc.qt.nokia.com/latest/qwidget.html on Symbian. QMainWindow has predefined Symbian CBA buttons but they have to be defined for QDialog and QWidget.


Make sure that the status pane and the control pane of the application are enabled. To do it call method showMaximized() of the main window:

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

MainWindow mainWindow;


return app.exec(); }

Defining menus in QMainWindow

QMainWindow has predefined Symbian CBA buttons so different options can be added to the Options menu by adding a new action.

menuBar()->addAction("Example", this, SLOT (exampleSlot()));

Please note that exampleSlot() slot is called when an item is selected from the Options menu and its behavior should be also implemented.

h2. Defining menus in QDialog or QWidget

Symbian CBA buttons are not predefined for QDialog or QWidget and they have to be defined.

An instance of "QMenu":http://doc.qt.nokia.com/latest/qmenu.html should be added at the header:

QMenu* m_pMenu;

At appropriate location should be added the implementation of Options menu and the Exit button:

// Create menu m_pMenu = new QMenu(this); m_pMenu->addAction("Example", this, SLOT (exampleSlot()));

// Create Options CBA QAction *pOptions = new QAction("Options", this); // Set defined menu into Options button pOptions->setMenu(m_pMenu); pOptions->setSoftKeyRole(QAction::PositiveSoftKey); addAction(pOptions);

// Create Exit CBA QAction *pExitButton = new QAction(QString("Exit"), this); pExitButton->setSoftKeyRole(QAction::NegativeSoftKey); // Exit button closes the application QObject::connect(pExitButton, SIGNAL (triggered()), QApplication::instance(), SLOT (quit())); addAction(pExitButton);

Of course the right button can be used not only to close the application as it can be connected to other slot.

See also

"Remove actions option menu in Symbian ":http://developer.qt.nokia.com/wiki/Remove_actions_options_menu_in_Symbian