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

Need Help: "Dialog does not name a type" Error



  • Re: [SOLVED]Need Help: Error " 'CLASS' does not name a type"
    First of all, I understand that this question has already been asked and I did understand the answer by @sierdzio but IDK how to fix it. What other way to open windows when button is pressed? And the site told me to create a new post.
    I also know this looks long but that's only because I've made it as readable as I can.
    I have a program in which a push button in a window opens a second window. The second window has a 'back' button which opens the first window.
    But in the second window I'm getting the error.
    NOTE: I'm only pasting part of the code so as to make it readable.
    Dialog.h(first window)

    #include <QDialog>
    #include "calculator.h"
    #include "imp.h"
    #include "perc.h"

    //standard codes that is automatically added on creating new dialog window in Qt

    private slots:
    void on_pushButton_clicked();

    void on_pushButton_9_clicked();
    
    void on_pushButton_8_clicked();
    
    void on_pushButton_2_clicked();
    
    void on_pushButton_3_clicked();
    

    private:
    Ui::Dialog *ui;
    //all the windows that will open from this window
    calculator *calc;
    Imp *pa;
    Perc *per;

    imp.h(second window)

    #include <QDialog>
    #include "dialog.h"

    //standard codes that is automatically added on creating new dialog window in Qt

    private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();
    

    private:
    Ui::Imp *ui;
    Dialog *secdialog;

    dialog.cpp(first window)
    #include "dialog.h"
    #include "ui_dialog.h"
    #include "mainwindow.h"

    //all the usual error-free(I think) code

    void Dialog::on_pushButton_2_clicked()
    {
    hide();
    pa=new Imp(this);
    pa->show();
    }

    imp.cpp(second window)

    #include "imp.h"
    #include "ui_imp.h"
    #include<QTextStream>
    #include<QFile>
    #include<QFileDialog>

    //all the usual error-free(I think) code

    void Imp::on_pushButton_2_clicked()
    {
    hide();
    secdialog=new Dialog(this);
    secdialog->show();
    }

    The error is in imp.h(2nd window) this line: Dialog *secdialog;
    The error says "Dialog does not name a type".
    Also note that dialog is not the main window but a window that opens many other windows when push button is pressed.

    PLEASE HELP ME WITH THIS AND THANKS IN ADVANCE.


  • Lifetime Qt Champion

    Hi and welcome

    The error says "Dialog does not name a type".

    Which means its missing its .h file.
    so in imp.ccp you must also have
    #include "dialog.h"
    So it know the custom type Dialog.

    like this test project
    https://www.dropbox.com/sh/cnvtmg831zvuex5/AADWKcdHF7K1qJKUE1a7atAMa?dl=0



  • @mrjj THANKS A MILLION!!! REAL LIFESAVER!
    BTW (small doubt): The error was in imp.h but I did include "dialog" in imp.h. The program worked when I removed those lines from the header and placed them in imp.cpp but I am confused as to why the previous configuration doesn't give the same result. Pls Clarify this as well.
    Thanks again!


  • Lifetime Qt Champion

    Hi
    :)

    • The program worked when I removed those lines from the header and placed them in imp.cpp

    That is a bid odd as it should have complained again.
    Did you Clean All - Rebuild all to really check?



  • Yes, I did. And it works! IDK what's supposed to happen but this really works.


Log in to reply