Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Help! is there errors in codes copied from book ?



  • I'm a total greenhand on qt,and I lent some books form library. I copied the "helloworld" code from the book to my QTcreator, and it ran perfectly. But when I started to build some more conplex code copied from the book, it start to make errors.
    this is the code:
    @
    //addressbook.h

    #ifndef ADDRESSBOOK_H
    #define ADDRESSBOOK_H

    #include <QWidget>

    class QLineEdit;

    class AddressBook : public QWidget
    {
    Q_OBJECT
    public:
    AddressBook(QWidget *parent = 0);
    private:
    QLineEditor * nameline;
    QTextEditor * addresstext;
    };

    #endif // ADDRESSBOOK_H
    @
    It said the "QLineEditor" (and lots of other things) need declaeration in the scope. Is there missing some lib or header?

    Edit: please use @ tags around code sections; Andre



  • In the adressbook.cpp file you should also use:

    #include <QLineEdit>

    Google for Forward declaration to understand why.

    Please add @ code tags on your code. See the button with <> on it on top of the editor here.



  • You must include QLineEdit and other which you use
    @#include <QLineEdit>@

    Edit:
    As Eddy says. I'm late little bit :)



  • It is spelled QLineEdit, not QLineEditor. In addition, you are missing a forward declaration for QTextEdit in your .h file.



  • [quote author="qxoz" date="1322203431"]You must include QLineEdit and other which you use
    #include <QLineEdit>[/quote]

    As long as you just use pointers a forward declaration is sufficient. There is no need to include headers.



  • [quote author="Lukas Geyer" date="1322203500"]
    As long as you just use pointers a forward declaration is sufficient. There is no need to include headers.[/quote]

    In fact, in most cases it's good practice to not include the header where a forward declaration is sufficient. Speeding up compile time is only one of the advantages.



  • [quote author="Lukas Geyer" date="1322203450"]It is spelled QLineEdit, not QLineEditor. In addition, you are missing a forward declaration for QTextEdit in your .h file.[/quote]

    I think that's the point. the reason i include qlineedit is it said something is not decleared. there is no include qlineedit on the book.



  • Samples in books often ommit includes for classes provided by well-known libraries for the sake of brevity. Often, you can download the samples as working source code, and there the needed includes will be there.


Log in to reply