Български English

Как се добавя меню с опции в Symbian приложение

Меню с опции и бутон за изход могат да бъдат сложени към QMainWindow [doc.qt.nokia.com], QDialog [doc.qt.nokia.com] или към QWidget [doc.qt.nokia.com] за Symbian. QMainWindow има предефинирани Symbian CBA бутони, но QDialog и QWidget нямат.

Предпоставки

Уверете се, че блоковете за статус и управление на екрана се включени. За да го направите извикайте метод showMaximized() на главния прозорец:

  1. int main(int argc, char *argv[])
  2. {
  3.     QApplication app(argc, argv);
  4.  
  5.     MainWindow mainWindow;
  6.     mainWindow.showMaximized();
  7.  
  8.     return app.exec();
  9. }

Създаване на меню в QMainWindow

QMainWindow има предефинирани Symbian CBA бутони и затова различните опции могат да бъдат добавени чрез нов action.

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

Моля, обърнете внимание, че exampleSlot() се извиква когато потребителя селекцира дадената опция и поради това той трябва също да бъде имплементиран.

Създаване на меню в QDialog или QWidget

Symbian CBA бутоните не са предефинирани за QDialog or QWidget и затова те трябва да бъдат дефинирани.

Инстанция на QMenu [doc.qt.nokia.com] трябва да бъде дефинирана в =h файла:

  1.  QMenu* m_pMenu;

На подходящо място в кода трябва да бъде добавена имплементация на менюто с опции и бутона за изход:

  1. // Create menu
  2. m_pMenu = new QMenu(this);
  3. m_pMenu->addAction("Example", this, SLOT(exampleSlot()));
  4.  
  5. // Create Options CBA
  6. QAction *pOptions = new QAction("Options", this);
  7. // Set defined menu into Options button
  8. pOptions->setMenu(m_pMenu);
  9. pOptions->setSoftKeyRole(QAction::PositiveSoftKey);
  10. addAction(pOptions);
  11.  
  12. // Create Exit CBA
  13. QAction *pExitButton = new QAction(QString("Exit"), this);
  14. pExitButton->setSoftKeyRole(QAction::NegativeSoftKey);
  15. // Exit button closes the application
  16. QObject::connect(pExitButton, SIGNAL(triggered()),
  17. QApplication::instance(), SLOT(quit()));
  18. addAction(pExitButton);

Разбира се десният бутон може да бъде ползван не само за изход от приложението. За да изпълнява други функционалности трябва да бъде свързан с друг слот.

Вижте също

Премахване на Actions от менюто с опции в Symbian [developer.qt.nokia.com]

Източници

Forum Nokia: Adding Options menu, panes and icon to a Qt for Symbian application [wiki.forum.nokia.com]

Categories: