Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Function key on symbian non-touch [Solved]
Forum Updated to NodeBB v4.3 + New Features

Function key on symbian non-touch [Solved]

Scheduled Pinned Locked Moved Mobile and Embedded
15 Posts 3 Posters 6.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    luca
    wrote on last edited by
    #1

    Hi all,
    I'm trying to develop a simple mobile application for my E66 using the last SDK 1.1 via remote compiler (under Linux).

    My E66 has two function key on the bottom of the display (usually used in symbian for select menu entries) .
    How can I use that keys in my qt application?

    For example I'd like to use the right one to exit application. As in the picture below where there is "close" .

    !http://www.pianetacellulare.it/Modelli/immagini/nokia_e66.jpg(E66 image)!

    1 Reply Last reply
    0
    • L Offline
      L Offline
      leon.anavi
      wrote on last edited by
      #2

      Hi,

      Please read Creating Options menu from "this article about adding Options menu in Symbian Qt application" http://wiki.forum.nokia.com/index.php/CS001351_-_Adding_Options_menu,_panes,_and_icon_to_a_Qt_for_Symbian_application It contains example code how to create Options menu and Exit buttons.

      Best regards,
      Leon

      http://anavi.org/

      1 Reply Last reply
      0
      • L Offline
        L Offline
        luca
        wrote on last edited by
        #3

        Thanks for the link.

        I followed it but the buttons doesn't appears.

        This is my MainWindow::MainWindow :
        @
        MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        {
        this->menuBar()->addAction("Menu item", this, SLOT(someSlot()));

        QMenu* m_menu;
        // Create menu
        m_menu = new QMenu(this);
        m_menu->addAction("Menu item", this, SLOT(someSlot()));
        
        // Create Options CBA
        QAction *optionsAction = new QAction("Options", this);
        // Set defined menu into Options button
        optionsAction->setMenu(m_menu);
        optionsAction->setSoftKeyRole(QAction::PositiveSoftKey);
        addAction(optionsAction);
        
        // Create Exit CBA
        QAction *backSoftKeyAction = new QAction(QString("Exit"), this);
        backSoftKeyAction->setSoftKeyRole(QAction::NegativeSoftKey);
        // Exit button closes the application
        QObject::connect(backSoftKeyAction, SIGNAL(triggered()),
        QApplication::instance(), SLOT(quit()));
        addAction(backSoftKeyAction);
        QTextEdit *te;
        te = new QTextEdit(this);
        this->setCentralWidget(te);
        

        }
        @

        What's wrong?

        Is there a working example to compile for simulator or for my phone ?

        1 Reply Last reply
        0
        • L Offline
          L Offline
          luca
          wrote on last edited by
          #4

          the button appears in simulator but not in my phone after compiling with remote compiler...

          1 Reply Last reply
          0
          • L Offline
            L Offline
            leon.anavi
            wrote on last edited by
            #5

            Hi Luca,

            Due to high interest in this topic I have created a wiki page at Qt DevNet: "How to Add Options Menu in Symbian Application":http://developer.qt.nokia.com/wiki/How_to_Add_Options_Menu_in_Symbian_Application

            Please that QMainWindow has predefined Symbian CBA and you do not have to define them again! Your code should look like:

            @
            MainWindow::MainWindow(QWidget *parent)
            : QMainWindow(parent)
            {
            menuBar()->addAction("Menu item", this, SLOT(someSlot()));
            }

            void MainWindow::exampleSlot()
            {

            }

            MainWindow::~MainWindow()
            {

            }
            @

            Please also note that the control panel of the application must be enabled. To do it make sure that main.cpp of your application looks like:

            @
            #include "mainwindow.h"

            #include <QtGui/QApplication>

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

            MainWindow mainWindow;
            mainWindow.showMaximized();
            
            return app.exec();
            

            }
            @

            Cheers,
            Leon

            http://anavi.org/

            1 Reply Last reply
            0
            • L Offline
              L Offline
              luca
              wrote on last edited by
              #6

              [quote author="leon.anavi" date="1304640197"]

              Please that QMainWindow has predefined Symbian CBA and you do not have to define them again!
              @
              [/quote]

              How do I define/re-define CBA?

              1 Reply Last reply
              0
              • L Offline
                L Offline
                luca
                wrote on last edited by
                #7

                Ok, I probably found the problem.

                Creating a new mobile project with Qt Creator I get this main:
                @
                #include "mainwindow.h"

                #include <QtGui/QApplication>

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

                MainWindow mainWindow;
                mainWindow.setOrientation(MainWindow::ScreenOrientationAuto);
                mainWindow.showExpanded();
                
                return app.exec();
                

                }
                @
                and showExpanded() is defined as follow:
                @
                void MainWindow::showExpanded()
                {
                #ifdef Q_OS_SYMBIAN
                showFullScreen();
                #elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
                showMaximized();
                #else
                show();
                #endif
                }
                @
                so compiling for Symbian show the application with showFullScreen() .
                Showing fullscreen application hide the "exit" button.

                Can you confirm me this?

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  leon.anavi
                  wrote on last edited by
                  #8

                  Hi Luca,

                  Please stick to the example that I have provided in my previous post and modify your main method. After that modify MainWindow::MainWindow(QWidget *parent) as per my advice and build your application. The Options menu will be visible!

                  I have tested the example using Qt Creator and the new Qt SDK. It is working on simulator and Nokia E7. I have also tested in using Carbide.C++ and S60v5 simulator the example was working using them too.

                  Best regards,
                  Leon

                  http://anavi.org/

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    luca
                    wrote on last edited by
                    #9

                    Ok thanks for your help Leon.
                    As I can see in your main.cpp you show your MainWindow with:
                    @
                    mainWindow.showMaximized();
                    @

                    and not:

                    @
                    mainWindow.showFullScreen();
                    @

                    That's why I didn't see the button.

                    Thanks again.

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      leon.anavi
                      wrote on last edited by
                      #10

                      [quote author="Luca" date="1304668463"]Ok thanks for your help Leon.
                      As I can see in your main.cpp you show your MainWindow with:
                      @
                      mainWindow.showMaximized();
                      @
                      [/quote]

                      Yes, this is an important precondition. I have "added a section about it at our wiki article ":http://developer.qt.nokia.com/wiki/How_to_Add_Options_Menu_in_Symbian_Application#9d86ec4f7dcd920f518cfc5532601cfb

                      So the issue is solved :)

                      Cheers,
                      Leon

                      http://anavi.org/

                      1 Reply Last reply
                      0
                      • L Offline
                        L Offline
                        luca
                        wrote on last edited by
                        #11

                        Hi, I'm here again...
                        Can you see the menu in Qt-Simulator?
                        I can't.
                        I see "options" (in the left) and "exit" (in the right). If I press "options" it doesn't show menu while if I press "exit" the application exits.

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          Lana
                          wrote on last edited by
                          #12

                          Hi, i have the same problem.... I add menu as it in the example and nothing occurs when i press "Options" button. How it could be solved?

                          Thanks,
                          Lana

                          1 Reply Last reply
                          0
                          • L Offline
                            L Offline
                            leon.anavi
                            wrote on last edited by
                            #13

                            Hi Luca, Lana,

                            I have tested Qt Simulator a minute ago and I had the same problem. According to a "thread at Forum Nokia":http://discussion.forum.nokia.com/forum/showthread.php?223306-moved-Why-i-see-my-menu-at-Qt-simulator-control this is the way the simulator works currently. :(

                            I have never been fan of simulators and this is another proof that is better to work with real device.

                            Best regards,
                            Leon

                            http://anavi.org/

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              Lana
                              wrote on last edited by
                              #14

                              Hi Leon,

                              Thanks much, i have already spent a lot of time to try finding the reason of such menu behaviour.

                              Sincerely,
                              Lana

                              1 Reply Last reply
                              0
                              • L Offline
                                L Offline
                                luca
                                wrote on last edited by
                                #15

                                [quote author="leon.anavi" date="1305612824"]Hi Luca, Lana,

                                I have tested Qt Simulator a minute ago and I had the same problem. According to a "thread at Forum Nokia":http://discussion.forum.nokia.com/forum/showthread.php?223306-moved-Why-i-see-my-menu-at-Qt-simulator-control this is the way the simulator works currently. :(

                                I have never been fan of simulators and this is another proof that is better to work with real device.

                                Best regards,
                                Leon

                                [/quote]

                                Thanks,

                                so the Simulator simulate a broken phone... :-)

                                1 Reply Last reply
                                0

                                • Login

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • Users
                                • Groups
                                • Search
                                • Get Qt Extensions
                                • Unsolved