Qt4: auf parent kein zugriff moeglich :/



  • Hallo,
    so langsam kennt ihr ja mein Programm,diesmal weiß ich nicht warum ich nicht auf ein parent Dialog zugreifen kann.

    Hiermal die wichtigsten Code Auszuege:

    mainform.cpp:

    #include "newlanguagedialog.h"
    #include <QtGui>
    #include <QStringList>
    #include <QApplication>
    
    MainForm::MainForm(QWidget *parent)
            : QDialog(parent)
        {
            setupUi(this);
    
     ...blabla...
    
     connect(quitButton, SIGNAL(clicked()), this, SLOT(quitButtonClicked()));
     connect(newButton, SIGNAL(clicked()), this, SLOT(newButtonClicked()));
        }
    
    void MainForm::newButtonClicked()
    {
     this->hide();
     newLanguageDialog *nld = new newLanguageDialog(this);
     nld->show();
    }
    

    newlanguagedialog.cpp

    #include "newlanguagedialog.h"
    #include <QtGui>
    
    newLanguageDialog::newLanguageDialog(QWidget *parent)
            : QDialog(parent)
        {
            setupUi(this);
    
     connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancelButtonClicked()));
        }
    
    void newLanguageDialog::cancelButtonClicked()
    {
     this->close();
     parent->show();
    }
    

    newlanguagedialog.h

    #include "ui_newlanguagedialog.h"
    
    #include <QDialog>
    
    class newLanguageDialog : public QDialog, private Ui::newLanguageDialog
        {
            Q_OBJECT
    
        public:
            newLanguageDialog(QWidget *parent = 0);
    
        public slots:
     virtual void cancelButtonClicked();
        };
    

    So also in der mainform wird per Klick aufm newButton ein newLanguageDialog erzeugt und mit this dacht ich mir kann ich sagen das die mainform parent ist.Nur leider gibt er beim Compilieren folgenden Fehler raus:

    newlanguagedialog.cpp:15: error: invalid use of member (did you forget the `&'
       ?)
    newlanguagedialog.cpp:15: error: base operand of `->' is not a pointer
    

    Weiß jemand was ich falsch mache?



  • Also es muss parentWidget()->show() heißen...

    Danke an frerich


Anmelden zum Antworten