Important: Please read the Qt Code of Conduct -

Expected class-name before '{' token error

  • Hi guys,

    I'm working on an example program. The program is finished but I get this error when running:

    error: expected class-name before '{' token

    This is sortdialog.h which the error belongs to:

    #ifndef SORTDIALOG_H
    #define SORTDIALOG_H
    #include <QDialog>
    #include "ui_sortdialog.h"
    class SortDialog : public QDialog, public Ui::SortDialog
    {                                 // The error points to this line
        SortDialog(QWidget* parent = 0);
        void setColumnRange(QChar first, QChar last);
    #endif // SORTDIALOG_H

    This in the main.cpp file too:

    #include <QApplication>
    #include "sortdialog.h"
    int main(int argc, char* argv[])
        QApplication app(argc, argv);
        SortDialog* dialog = new SortDialog;
        dialog -> setColumnRange('C', 'F');
        dialog -> show();
        return app.exec();

    What is this error for please?

  • i think you need a namespace when you want to take this classname. i could be wrong. try to change the classname or namespace it.

  • Hi, did you check if uic (User Interface Compiler) ran without error? It seems that the compiler does not recognize Ui::SortDialog as a proper class name. Double check the contents of ui_sortdialog.h, you should see something like

    namespace Ui {
        class SortDialog: public Ui_SortDialog {};
    } // namespace Ui

    in the end.

  • Thank you. The problem belonged to the .pro file.
    It's solved now.

Log in to reply