Problem with creating first project and the book "C++-gui-programming-with-qt-4-2ndedition"



  • Hi all,

    I installed "qt-opensource-windows-x86-mingw482_opengl-5.3.0" on my Windows 7 machine. For learning Qt I chose that book (on the title) and started with it.
    In getting started, page 10 of that book, the below code is written:

    @
    #include <QApplication>
    #include <QLabel>

    int main (int argc, char argv[])
    {
    QApplication app (argc, argv);
    QLabel
    label = new QLabel ("Hello Qt!");
    label ->show();
    return app.exec();
    }@

    But I don't know how to make that window for writing codes. How to make that project, that is, from what menus, step-by-step.
    I also read the Appendixes A & B of the book but those just confuse me more.


  • Moderators

    That book is old, it was written before Qt Creator existed.

    You can start by running File -> New file or project... -> Applications -> Qt Widget Application.

    It will create some basic project structure for you, with main.cpp already in place. Alternatively, you can go for "Empty Qt project" and manually add .pro file code and main.cpp file.



  • I'm really confused.
    I made an Empty Qtproject and wrote this code:

    @#include <QApplication>
    #include <QLabel>

    int main(int argc,char *argv[])
    {
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();
    }@

    But I get 4 issues!
    They are as follows.What is the problem please?

    C:\Qt\Qt5.3.0\Tools\QtCreator\bin\untitled\untitled.pro:4: error: Extra characters after test expression.
    C:\Qt\Qt5.3.0\Tools\QtCreator\bin\untitled\untitled.pro:6: error: Extra characters after test expression.
    C:\Qt\Qt5.3.0\Tools\QtCreator\bin\untitled\untitled.pro:7: error: Assignment needs exactly one word on the left hand side.
    C:\Qt\Qt5.3.0\Tools\QtCreator\bin\untitled\untitled.pro:9: error: Extra characters after test expression.



  • Hi,
    The errors are in your project file!! (untitled.pro) with the lines 4, 6, 7, 9
    Show that piece of code and we might solve the problem.
    Also, creating a project in your Qt folder is IMHO not a smart thing to do.
    When using a QLabel you should have generated a new->QWidget project like sierdzio said ;-)


  • Moderators

    Put C++ code (the whole snippet above) into main.cpp file.

    In .pro file, type this:
    @
    QT += core gui widgets

    SOURCES += main.cpp
    @

    Should work.



  • I made a Qt Widget Application like what "sierdzio" has said, named "test.pro".
    These are the things which are written on it be default:

    @#-------------------------------------------------

    Project created by QtCreator 2014-06-11T11:37:42

    #-------------------------------------------------

    QT += core gui

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

    TARGET = test
    TEMPLATE = app

    SOURCES += main.cpp
    mainwindow.cpp

    HEADERS += mainwindow.h

    FORMS += mainwindow.ui
    @

    Now where to put that simple snip code please?



  • Hi,
    When you generate a "empty" widget project, you get a project file (test.pro) a main file (main.cpp) and your first class declaration (MainWindow.cpp) if you selected to add a mainwindow widget to the project.
    Your main function in main.cpp should look like this:
    @
    int main(int argc,char *argv[])
    {
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();
    }
    @
    This is to generate a QApplication which you need 1 off in every program (or a QCoreApplication etc if no widgets are used etc). The QApplication handles the Event loop and a hole lot of other stuff.
    Your MAinWindow class is not used for now, but that will come later.



  • Completely mixed up!

    Please read the thread from beginning. My question is very simple. I gave the first example of the book and said how to make a project and put that snip code into that and run it.
    I should first solve this problem and then be familiar with other parts of Qt.
    This is the window of test.pro which I created it:
    http://tinypic.com/view.php?pic=5ltrgj&s=8#.U5hiG3KSzis



  • No, I'm not mixed up!
    My explanation is very basic and noob proof.

    Don't change the pro file! Leave it alone, this comes later. The pro file is used by QMake (you will learn later) how to compile.

    Then open the source folder (you know the little triangle in front of it). Then double click the main.cpp file (this will open it in creator). Then place your code there in the main function and delete the MainWindow creation for now.
    You should get a window with only a button into it. It can't get any more simple then that!



  • After much attempt I could to run the code. It worked. Please look at my code window screen in below link. Is everything fine to you?
    http://tinypic.com/r/1265n3k/8



  • That looks fine and you should no get that window with one button.
    And you now have a way to work through the book using the Creator.



  • OK mate. Thank you very much for assigning your time for helping me.

    I try to read that book carefully but it doesn't seem to be clear for beginners (for example now I should try to solve this: From a command prompt, change the directory to "test" and type qmake -project).

    Thanks also to all of other guys that helped me.



  • If you want to know how to build projects without the IDE, working from the command prompt would help.
    But it is not necessary as you may work completely from the Creator and the Qt Creator runs qmake and make for you.

    I think it is now helpful, if you try one of the examples supplied with Creator and then step back to the book and merge the code from the book to the IDE.



  • I'm sorry, I don't know at all how to try one of those examples. And I wrote that qmake and command prompt because they exist in the book and I just quoted them from the book.
    Since I read that not clear book I have to follow what it says:(.



  • I started to learn Qt from "this":http://qt-project.org/doc/qt-5/tutorials-addressbook.html tutorial.
    Try it.



  • That is a good tutorial and you may find the Qt Examples here:
    Qt Creator -> Welcome -> Examples
    Happy coding :)



  • Thank you all very much. I try to read that tut. You are awesome guys* ;)*


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.