Seite 1 von 1

Kleines Qt Tutorial Problem

Verfasst: 20. Juni 2007 10:19
von Pyro
Moin,

ich bin gerade dabei einen kleinen Vortrag über das Signal & Slot Konzept in Qt zu schreiben.
Ich würde gern ein kleines Tutorial mit reinnehmen,
das Auge ißt ja bekanntlich mit :lol:

Leider muss ich zugeben, dass C++ so gar nicht meine Stärke ist
und vielleicht mag einer von Euch mal schnell drüberschauen
und mir beim Fehler helfen.

Hier der Code der Main.cpp:

Code: Alles auswählen

#include "ui_HelpBrowser.h"
#include <QtGui/QtGui>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	app.setQuitOnLastWindowClosed(true);
	
	QMainWindow *form = new QMainWindow;
	Ui::MainWindow ui;
	ui.setupUi(form);
	
	ui.textBrowser->setSource(QString("http://doc.trolltech.com/"));
	
	form->show();
	
	return app.exec();
}
Und hier die Ausgabe:

Code: Alles auswählen

main.cpp: In function `int qMain(int, char**)':
main.cpp:10: error: `MainWindow' is not a member of `Ui'
main.cpp:10: error: expected `;' before "ui"
main.cpp:11: error: `ui' undeclared (first use this function)
main.cpp:11: error: (Each undeclared identifier is reported only once for each f
unction it appears in.)
NMAKE : fatal error U1077: 'g++': R³ckgabe-Code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\
bin\nmake.exe"': R³ckgabe-Code '0x2'
Stop.
Und die Header Datei:

Code: Alles auswählen

/********************************************************************************
** Form generated from reading ui file 'HelpBrowser.ui'
**
** Created: Tue 19. Jun 15:26:54 2007
**      by: Qt User Interface Compiler version 4.3.0
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_HELPBROWSER_H
#define UI_HELPBROWSER_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHBoxLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QStatusBar>
#include <QtGui/QTextBrowser>
#include <QtGui/QWidget>

class Ui_HelpBrowser
{
public:
    QWidget *centralwidget;
    QTextBrowser *textBrowser;
    QWidget *widget;
    QHBoxLayout *hboxLayout;
    QPushButton *pushButton;
    QPushButton *pushButton_2;
    QLineEdit *lineEdit;
    QWidget *widget1;
    QHBoxLayout *hboxLayout1;
    QSpacerItem *spacerItem;
    QPushButton *QButtonClose;
    QMenuBar *menubar;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *HelpBrowser)
    {
    if (HelpBrowser->objectName().isEmpty())
        HelpBrowser->setObjectName(QString::fromUtf8("HelpBrowser"));
    HelpBrowser->setEnabled(true);
    QSize size(635, 448);
    size = size.expandedTo(HelpBrowser->minimumSizeHint());
    HelpBrowser->resize(size);
    centralwidget = new QWidget(HelpBrowser);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    textBrowser = new QTextBrowser(centralwidget);
    textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
    textBrowser->setGeometry(QRect(9, 40, 617, 328));
    widget = new QWidget(centralwidget);
    widget->setObjectName(QString::fromUtf8("widget"));
    widget->setGeometry(QRect(9, 9, 617, 25));
    hboxLayout = new QHBoxLayout(widget);
    hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
    hboxLayout->setContentsMargins(0, 0, 0, 0);
    pushButton = new QPushButton(widget);
    pushButton->setObjectName(QString::fromUtf8("pushButton"));
    pushButton->setEnabled(false);

    hboxLayout->addWidget(pushButton);

    pushButton_2 = new QPushButton(widget);
    pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
    pushButton_2->setEnabled(false);

    hboxLayout->addWidget(pushButton_2);

    lineEdit = new QLineEdit(widget);
    lineEdit->setObjectName(QString::fromUtf8("lineEdit"));

    hboxLayout->addWidget(lineEdit);

    widget1 = new QWidget(centralwidget);
    widget1->setObjectName(QString::fromUtf8("widget1"));
    widget1->setGeometry(QRect(9, 374, 617, 25));
    hboxLayout1 = new QHBoxLayout(widget1);
    hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
    hboxLayout1->setContentsMargins(0, 0, 0, 0);
    spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

    hboxLayout1->addItem(spacerItem);

    QButtonClose = new QPushButton(widget1);
    QButtonClose->setObjectName(QString::fromUtf8("QButtonClose"));
    QButtonClose->setEnabled(true);

    hboxLayout1->addWidget(QButtonClose);

    HelpBrowser->setCentralWidget(centralwidget);
    menubar = new QMenuBar(HelpBrowser);
    menubar->setObjectName(QString::fromUtf8("menubar"));
    menubar->setGeometry(QRect(0, 0, 635, 21));
    HelpBrowser->setMenuBar(menubar);
    statusbar = new QStatusBar(HelpBrowser);
    statusbar->setObjectName(QString::fromUtf8("statusbar"));
    HelpBrowser->setStatusBar(statusbar);

    retranslateUi(HelpBrowser);
    QObject::connect(pushButton, SIGNAL(clicked()), textBrowser, SLOT(backward()));
    QObject::connect(pushButton_2, SIGNAL(clicked()), textBrowser, SLOT(forward()));
    QObject::connect(textBrowser, SIGNAL(backwardAvailable(bool)), pushButton, SLOT(setEnabled(bool)));
    QObject::connect(textBrowser, SIGNAL(forwardAvailable(bool)), pushButton_2, SLOT(setEnabled(bool)));
    QObject::connect(textBrowser, SIGNAL(highlighted(QString)), lineEdit, SLOT(setText(QString)));
    QObject::connect(QButtonClose, SIGNAL(clicked()), HelpBrowser, SLOT(close()));

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

    void retranslateUi(QMainWindow *HelpBrowser)
    {
    HelpBrowser->setWindowTitle(QApplication::translate("HelpBrowser", "HelpBrowser", 0, QApplication::UnicodeUTF8));
    pushButton->setText(QApplication::translate("HelpBrowser", "Backward", 0, QApplication::UnicodeUTF8));
    pushButton_2->setText(QApplication::translate("HelpBrowser", "Forward", 0, QApplication::UnicodeUTF8));
    QButtonClose->setText(QApplication::translate("HelpBrowser", "Close", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(HelpBrowser);
    } // retranslateUi

};

namespace Ui {
    class HelpBrowser: public Ui_HelpBrowser {};
} // namespace Ui

#endif // UI_HELPBROWSER_H

Gruß

Alex

Verfasst: 20. Juni 2007 10:23
von NoobSaibot
Ui::HelpBrowser müsste es heißen und nicht Ui::MainWindow

Verfasst: 20. Juni 2007 10:37
von Pyro
OMG danke :oops:

Jetzt habe ich aber leider eine Meldung, die völlig an mir vorbei geht:

Code: Alles auswählen

        g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-ps
eudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o "debug\HelpBrowser.exe" debug
\main.o  -L"c:\Qt\4.3.0\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin
d -lqtmaind
collect2: ld returned 1 exit status
NMAKE : fatal error U1077: 'g++': R³ckgabe-Code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\
bin\nmake.exe"': R³ckgabe-Code '0x2'
Stop.

Verfasst: 20. Juni 2007 10:54
von Christian81
Dann suche doch bite mal nach diesem Fehler hier im Forum (oder erstelle gleich die debug-Libs)

Verfasst: 20. Juni 2007 12:04
von NoobSaibot
du benutzt die binär version von Qt, die enthält keine debug bibliotheken. du müßtest Qt kompilieren.

Verfasst: 20. Juni 2007 12:25
von upsala
ich bin gerade dabei einen kleinen Vortrag über das Signal & Slot Konzept in Qt zu schreiben.
Ich würde gern ein kleines Tutorial mit reinnehmen,
das Auge ißt ja bekanntlich mit Laughing

Leider muss ich zugeben, dass C++ so gar nicht meine Stärke ist...
Ist das nicht etwas sehr widersprüchlich?

Verfasst: 20. Juni 2007 13:13
von Pyro
upsala hat geschrieben:
ich bin gerade dabei einen kleinen Vortrag über das Signal & Slot Konzept in Qt zu schreiben.
Ich würde gern ein kleines Tutorial mit reinnehmen,
das Auge ißt ja bekanntlich mit Laughing

Leider muss ich zugeben, dass C++ so gar nicht meine Stärke ist...
Ist das nicht etwas sehr widersprüchlich?
Ne nicht wirklich, da ich ja über das Konzept schreibe und nicht über die Implementierung.

Ansonsten habe ich gerade abermals die Debug-Libs erstellt,
leider noch keine Lösung gefunden.

Verfasst: 20. Juni 2007 13:20
von Christian81
Wenn du die Debug-Libs (ohen Fehler) erstellt hast, wäre auch eine qtmaind.lib in qt-4/lib vorhanden...

Verfasst: 20. Juni 2007 15:00
von Pyro
Also nachdem ich nochmal alles übersetzt habe und dann alles beim alten Fehler blieb,
habe ich mich kurzerhand dazu entschlossen Qt und MinGW nochmal zu installieren.
Nun klappt alles, vielen Dank für Eure Mühe :D


Alex