Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Learning
  3. Qt in Education
  4. Programming with Qt Quick for Symbian and MeeGo Harmattan Devices
QtWS25 Last Chance

Programming with Qt Quick for Symbian and MeeGo Harmattan Devices

Scheduled Pinned Locked Moved Qt in Education
11 Posts 2 Posters 6.7k Views
  • 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.
  • T Offline
    T Offline
    Tslv
    wrote on last edited by
    #1

    I am using Qt SDK 1.1.4.
    Qt Creator 2.4.0
    Based on Qt 4.7.4 (32 bit)
    Built on Dec 16 2011 at 03:25:42

    Currently my qt SDK is up to date.
    I was very happy when I found the document Programming with Qt Quick for Symbian and MeeGo Harmattan Devices version 1.1 released December 13, 2011. This is the latest version I could find.
    I have downloaded it and try to follow it. Then I got disappointed.
    The guide can be downloaded from this link
    http://qt.nokia.com/learning/guides/

    When I create Hello World as described in chapter 2 Using Qt Creator to Setup the Project
    there are many differences from my code and code explained in the PDF document.
    I am new to Qt and this is confusing me.

    1. In my code which is auto generated when I create new Qt Quick project top level element of the main.qml file is pageStacWindow. In your documentation the top level element is window.
    2. In my auto generated code main.qml is importing QtQuick 1.1 and in your PDF it is importing QtQuick 1.0
    3. You have ToolBar element and I have ToolBarLayout element.
    4. You declare element StatusBar and in my code I just see properties showStatusBar: true
      showToolBar: true

    So my question is which code should I use?
    Why so many differences from documentation and real life?
    This is really making learning curve steeper.

    Qt Video Tutorials
    http://www.youtube.com/user/MobileDevVT/videos
    More learning materials
    http://mobiledevvt.blogspot.com/

    1 Reply Last reply
    0
    • T Offline
      T Offline
      Tslv
      wrote on last edited by
      #2

      Hi,
      I am still reading your
      "Programming with qt quick for Symbian and MeeGo Harmatan Devices" Release 1.1
      I have found it at:
      http://qt.nokia.com/learning/guides/

      On page 46 CheckBox doneField is anchored to titleLabel element. This element isn't declared in this file.

      Also TextArea noteField is achored to noteLabel. This element also isn't declared in this file.

      Because of this I am getting Reference Errors:

      file:///C:/QtWork/Learning/ToDoList/TodoList_Skeleton-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug/qml/TodoList/pages/TodoPage.qml:82: ReferenceError: Can't find variable: noteLabel
      file:///C:/QtWork/Learning/ToDoList/TodoList_Skeleton-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug/qml/TodoList/pages/TodoPage.qml:64: ReferenceError: Can't find variable: titleLabel

      I am beginner here and lots of things are new to me. Things like this are really making harder to understand the big picture.
      Could you please update your learning materials, or at least answer my questions?

      Thanks

      Edited 26.01.2012.
      There is a newer version of the guide available for download. The version is updated 24th of January 2012. It still has the same version 1.1 but there are some changes on page 46

      Qt Video Tutorials
      http://www.youtube.com/user/MobileDevVT/videos
      More learning materials
      http://mobiledevvt.blogspot.com/

      1 Reply Last reply
      0
      • G Offline
        G Offline
        GentooXativa
        wrote on last edited by
        #3

        Download the tutorial again, was updated 2 days ago. ^^

        Jose Vicente Giner Sanchez - Senior Mobile Developer

        www.gigigo.com

        C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
        T: +34 917431436

        1 Reply Last reply
        0
        • T Offline
          T Offline
          Tslv
          wrote on last edited by
          #4

          Hi GentooXativa,
          Thanks for the news. I downloaded new version of the guide released 24th of January. The version number is still 1.1.

          1. On the page 11 they are still using Window element
            instead of PageStackWindow as an root element
          2. still importing QtQuick 1.0
          3. in the guide there is still ToolBar instead of ToolBarLayout
          4. StatusBar element is used instead of showStatusBar: property
            All these are already mentioned in my first post
            http://developer.qt.nokia.com/forums/viewthread/13200/

          They have fixed my other issue with missing elements titleLabel and noteLabel.
          http://developer.qt.nokia.com/forums/viewreply/71746/

          Thanks for that, but please address my first post also. I also think they should incorporate change log to their document.

          Qt Video Tutorials
          http://www.youtube.com/user/MobileDevVT/videos
          More learning materials
          http://mobiledevvt.blogspot.com/

          1 Reply Last reply
          0
          • G Offline
            G Offline
            GentooXativa
            wrote on last edited by
            #5

            I think they still with QtQuick 1.0 to keep the compatibility with Symbian^1 devices.

            QtQuick 1.1 is supported after 4.7.4 and s^1 still with 4.7.3

            Jose Vicente Giner Sanchez - Senior Mobile Developer

            www.gigigo.com

            C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
            T: +34 917431436

            1 Reply Last reply
            0
            • T Offline
              T Offline
              Tslv
              wrote on last edited by
              #6

              Here are some other questions I would like to be answered inside this tutorial.

              1. Where is SQLite database? I mean in which file is it?
              2. How can I create my own database from scratch? I want to create a list of my favorite ice cream shops. My app will only read this database and display it in a list. Do I create a new app in which I enter ice cream shop name, address and telephone number to a database? Afterwards I just transfer my database to another project that just reads data from it? There must be a smarter way to do this.

              On the page 19 of the guide I am directed to use the skeleton code. On the page 42 under Chapter "Getting Data from the Database" the data is already there. I would like if someone explained how the data got there, and how can I create this data from scratch.

              Qt Video Tutorials
              http://www.youtube.com/user/MobileDevVT/videos
              More learning materials
              http://mobiledevvt.blogspot.com/

              1 Reply Last reply
              0
              • G Offline
                G Offline
                GentooXativa
                wrote on last edited by
                #7

                Well, the destination of SQLite depends on the configuration directory for your application, that depends if you configured your application information with
                @
                QCoreApplication::setOrganizationName("GiGiGo");
                QCoreApplication::setOrganizationDomain("gigigo.com");
                QCoreApplication::setApplicationName("appTest");
                @
                That saves all your content into:
                @C:\Users$Username\AppData\Local\GiGiGo@

                on windows and into $HOME/.config/GiGiGo under linux.

                Another way is specify the full path for the SQLITE database, for example with:
                @
                QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
                db.setDatabaseName("C:\myStuff\MyDatabase.sqlite");
                @

                To create your own database, you should open the database, and work with them like any SQL database, creating the tables and populating them with INSERTs

                @

                QSqlQuery query;
                query.exec( "CREATE TABLE uiPanel( ID INT(10), Name TEXT, isActive INT(1), Version INT(10));CREATE TABLE uiTargets( ID INT(10), Name TEXT, Doc TEXT, Version INT(10));");
                

                ....

                QSqlQuery   query;
                query.exec( QString( "INSERT INTO uiPanel (Name) VALUES ('%1');" ).arg(npanel->getName()));
                

                @

                Jose Vicente Giner Sanchez - Senior Mobile Developer

                www.gigigo.com

                C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
                T: +34 917431436

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  Tslv
                  wrote on last edited by
                  #8

                  Hi GentooXativa,
                  Thanks for helping me out :) I am beginner so I don't understand everything you have said.

                  1. I am flowing the guide and I am using QML and JavaScript to access SQLite database.
                    My guess is that all the code you have mentioned like

                  @QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
                  db.setDatabaseName("C:\myStuff\MyDatabase.sqlite");@

                  should go to main.cpp file? But in the guide we don't edit C++ code because we are using QML and JavaScript.

                  On the page 36 of the guide you can see that there are 2 functions in JavaScript file ceore.js
                  @.pragma library

                  var _db;
                  function openDB()
                  {
                  _db = openDatabaseSync("TodoDB","1.0","the Todo related Database",1000000);
                  createTable();
                  }
                  function createTable()
                  {
                  _db.transaction(
                  function(tx){
                  tx.executeSql("CREATE TABLE IF NOT EXISTS todo (id INTEGER PRIMARY KEY AUTOINCREMENT, box INTEGER, done TEXT, title TEXT, note TEXT, modified TEXT)");
                  }
                  )
                  }@

                  The functions are openDB() and createTable(). But there is no path to the file congaing the database

                  1. So basically what you are saying is I should create sepearete app to populate my database. I was hoping that there is a tool for this.

                  Qt Video Tutorials
                  http://www.youtube.com/user/MobileDevVT/videos
                  More learning materials
                  http://mobiledevvt.blogspot.com/

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    GentooXativa
                    wrote on last edited by
                    #9

                    True, sorry :D I posted the C++ way ^^

                    On QML/JS based application you can obtain the path where databases are stored using

                    @qDebug() << "Offline storage path: " << viewer.engine()->offlineStoragePath() << "/Databases";@

                    on your main.cpp file.

                    Sorry for the confusion ^^

                    Jose Vicente Giner Sanchez - Senior Mobile Developer

                    www.gigigo.com

                    C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
                    T: +34 917431436

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      Tslv
                      wrote on last edited by
                      #10

                      Thnx!
                      I have inserted you line right before
                      @return app->exec();@

                      It worked fine and now I know that my database is located in
                      @C:\Documents and Settings\MyUserName\Local Settings\Application Data\Nokia\QtSimulator\data\QML\OfflineStorage\Databases@

                      1. What I don't understand is how did it got there?
                        I have downloaded skeleton code and I have extracted it to the folder
                        @C:\QtWork\Learning\ToDoList@

                      I do realize that I have created this database when I called openDB() and createTable() functions, but I don't understand where did the data that is inside the database came from? Where did all the ToDo Items came from? I didn't create them and I didn't put them in database.

                      1. Inside my Databases folder I have two files. One is:
                        36041e28b36e413b13ff35faed025eaa.sqlite
                        and this is the database itself
                        Second one is:
                        36041e28b36e413b13ff35faed025eaa.ini
                        and inside I have:
                        @[General]
                        Name=TodoDB
                        Version=1.0
                        Description=the Todo related Database
                        EstimatedSize=1000000
                        Driver=QSQLITE
                        @

                      Lets say I want to create a new app that only reads SQLite database. In the DB I would have names, addreses and other info about ice cream shops :) So I have created new project using Qt SDK and everything is inside my project folder
                      @C:\QtWork\Learning\IceCreamShops@
                      Where should I put my database I have created with another application?
                      I mean there is already a database with a strange file name from my ToDoList project inside

                      @C:\Documents and Settings\MyUserName\Local Settings\Application Data\Nokia\QtSimulator\data\QML\OfflineStorage\Databases@

                      If I put my IceCreamStore database inside too how will the app know which database to open?

                      Qt Video Tutorials
                      http://www.youtube.com/user/MobileDevVT/videos
                      More learning materials
                      http://mobiledevvt.blogspot.com/

                      1 Reply Last reply
                      0
                      • G Offline
                        G Offline
                        GentooXativa
                        wrote on last edited by
                        #11

                        I dont know how exactly works the database naming on QML, i created a empty database, took his name and download a file with that name and put it into storage directory.

                        Jose Vicente Giner Sanchez - Senior Mobile Developer

                        www.gigigo.com

                        C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
                        T: +34 917431436

                        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