Seite 1 von 1

Designer mit Code verbinden

Verfasst: 18. August 2007 18:21
von k_wos
Hallo! Bin leider noch ein blutiger Anfänger.

Ich habe mit dem Designer bereits ein einfaches MainWindow erstellt (ui-Datei).
Danach habe ich auch schon eine passende .cpp (MessageBox soll aufgerufen werden) und .h erstellt. Fehlermeldung bekomme ich keine, aber es passiert einfach nichts.

Hier meine Dateien
mainwindow.cpp

Code: Alles auswählen


#include "mainwindow.h" 
#include <QtGui> 
#include <QMessageBox>
#include <QWidget>


MainWindow::MainWindow() 
 { 

setupUi(this); 
  
QMessageBox::information(this, "Alles OK", "Es geht ");
} 
Mainwindow.h

Code: Alles auswählen

#ifndef MAINWINDOW_H_ 
#define MAINWINDOW_H_ 
#include <QMainWindow> 
#include <QWidget>

#include "ui_MainWindow.h" 

class MainWindow : public QMainWindow, public Ui::MainWindow 
{ 

Q_OBJECT 

public: 
MainWindow(); 


}; 

#endif 
ui_mainwindow.h (mit Designer erstellt)

Code: Alles auswählen

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>

class Ui_MainWindow
{
public:
    QAction *actionExit;
    QWidget *centralwidget;
    QMenuBar *menubar;
    QMenu *menuFile;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *MainWindow)
    {
    if (MainWindow->objectName().isEmpty())
        MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
    QSize size(800, 600);
    size = size.expandedTo(MainWindow->minimumSizeHint());
    MainWindow->resize(size);
    actionExit = new QAction(MainWindow);
    actionExit->setObjectName(QString::fromUtf8("actionExit"));
    centralwidget = new QWidget(MainWindow);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    MainWindow->setCentralWidget(centralwidget);
    menubar = new QMenuBar(MainWindow);
    menubar->setObjectName(QString::fromUtf8("menubar"));
    menubar->setGeometry(QRect(0, 0, 800, 21));
    menuFile = new QMenu(menubar);
    menuFile->setObjectName(QString::fromUtf8("menuFile"));
    MainWindow->setMenuBar(menubar);
    statusbar = new QStatusBar(MainWindow);
    statusbar->setObjectName(QString::fromUtf8("statusbar"));
    MainWindow->setStatusBar(statusbar);

    menubar->addAction(menuFile->menuAction());
    menuFile->addAction(actionExit);

    retranslateUi(MainWindow);
    QObject::connect(actionExit, SIGNAL(triggered()), MainWindow, SLOT(close()));

    QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
    MainWindow->setWindowTitle(QString());
    actionExit->setText(QApplication::translate("MainWindow", "Exit", 0, QApplication::UnicodeUTF8));
    menuFile->setTitle(QApplication::translate("MainWindow", "File", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

#endif // UI_MAINWINDOW_H
Was mache ich falsch??
Danke

Verfasst: 18. August 2007 18:33
von -=Freaky=-
probier es mal so:

Code: Alles auswählen

#include "mainwindow.h"
#include <QtGui>
#include <QMessageBox>
#include <QWidget>


MainWindow::MainWindow()
: QMainWindow()
 {

setupUi(this);
 
QMessageBox::information(this, "Alles OK", "Es geht ");
} 
so stehts auch im assistant. ;)

wenn es nicht klappt, poste mal die main-funktion.

mfg,
julian

Verfasst: 18. August 2007 18:42
von k_wos
Hallo!
Hat leider auch nichts gebracht.

Hier meine main.cpp

Code: Alles auswählen

#include <QApplication>
#include <QDialog>
#include <QMainWindow>
#include <QWidget>
#include <QMessageBox>

#include "ui_mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    
    QMainWindow *mw = new QMainWindow;
    Ui::MainWindow ui;
    ui.setupUi(mw);
    mw->show();

    return app.exec();
}

Verfasst: 18. August 2007 19:39
von -=Freaky=-
in meinem programm brauch ich das setupUi etc garnicht nochmal, sollte auch irgendwo aus dem asisstant hervorgehen, da hab ich es ja auch her.

probier mal zusaetzlich zur anderen geaenderten datei

Code: Alles auswählen

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    MainWindow mainWin;
    mainWin.show();
    return app.exec();
} 
// edit: ueber die main-fkt NUR

Code: Alles auswählen

#include <QApplication>
#include "mainwindow.h" 
mfg,
julian