[gelöst]Problem beim kompilieren

Alles rund um die Programmierung mit Qt
Antworten
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

[gelöst]Problem beim kompilieren

Beitrag von defenderLQ »

hallo

Mein Ziel ein gui zu erstellen das die Toolbar Buttons das gewünschte dialoge anzeigen im Gleichen MainWindow.

Am anfang hatte ich das komplette mainwindow die buttons gleich ins
Toolbar intrgriert mti dem designer dann STacked widget in mainwindow noch

Eben wollte Das 1 Toolbar button das die erste seite vom stacked widget anzeigt aber das ging mit dem designer nicht es zu verknüpfen.

da hat mir einer gesagt das es so nicht geht man muss als source via
cpp oder py machen.

jetzt habe ich stacked widget wieder ruasgeschmissen und die einzelenen
dialoge eine seperates .ui erstellt.

wie nach einem beispiel wo ich es gesehen habe.
Es sol momentan nur ein funktionierendes gui werden ohne core.

hier ist ein fehler das bei mir kommt:
mit make:

C
onnectionsDialog.h:31: error: using-declaration for non-member at class scope
ConnectionsDialog.h:31: error: expected `;' before "ui"
ConnectionsDialog.cpp: In constructor `ConnectionsDialog::ConnectionsDialog(QWid
get*)':
ConnectionsDialog.cpp:13: error: `ui' undeclared (first use this function)
ConnectionsDialog.cpp:13: error: (Each undeclared identifier is reported only on
ce for each function it appears in.)
mingw32-make[1]: *** [release\ConnectionsDialog.o] Error 1
mingw32-make[1]: Leaving directory `E:/QT-2'
mingw32-make: *** [release] Error 2
ich kann die fehler nicht fixen kein ahunung wie das kommt.

hier mein Mainwindow.cpp:

Code: Alles auswählen






#include "MainWindow.h"

/* Images for toolbar icons */
#define IMAGE_CONNECTIONS       ":/images/connections_24x24.png"
#define IMAGE_PEERS        		":/images/peers_24x24.png"
#define IMAGE_SEARCH    		":/images/search_24x24.png"
#define IMAGE_DOWNLOADS      	":/images/downloads_24x24.png"
#define IMAGE_SHARED_FILES      ":/images/sharedfiles_24x24.png"
#define IMAGE_PREFERENCES       ":/images/preferences_24x24.png"
#define IMAGE_CHAT          	":/images/comments_24x24.png"



/** Constructor */
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent)
{
  /* Invoke the Qt Designer generated QObject setup routine */
  ui.setupUi(this);

  /* Create the config pages and actions */
  QActionGroup *grp = new QActionGroup(this);
  ui.stackPages->add(new ConnectionsDialog(ui.stackPages),
                     createPageAction(QIcon(IMAGE_CONNECTIONS), tr("Connections"), grp));
  
  ui.stackPages->add(new PeersDialog(ui.stackPages),
                     createPageAction(QIcon(IMAGE_PEERS), tr("Peers"), grp));
  
  
  /* Create the toolbar */
  ui.toolBar->addActions(grp->actions());
  ui.toolBar->addSeparator();
  connect(grp, SIGNAL(triggered(QAction *)), ui.stackPages, SLOT(showPage(QAction *)));
  

  /* Select the first action */
  grp->actions()[0]->setChecked(true);
}

/** Creates a new action associated with a config page. */
QAction*
MainWindow::createPageAction(QIcon img, QString text, QActionGroup *group)
{
  QAction *action = new QAction(img, text, group);
  action->setCheckable(true);
  action->setFont(FONT);
  return action;
}

/** Adds the given action to the toolbar and hooks its triggered() signal to
 * the specified slot (if given). */
void
MainWindow::addAction(QAction *action, const char *slot)
{
  action->setFont(FONT);
  ui.toolBar->addAction(action);
  connect(action, SIGNAL(triggered()), this, slot);
}

/** Overloads the default show so we can load settings */
void
MainWindow::show()
{


  if (!this->isVisible()) {
    QMainWindow::show();
  } else {
    QMainWindow::activateWindow();
    setWindowState(windowState() & ~Qt::WindowMinimized | Qt::WindowActive);
    QMainWindow::raise();
  }
}

/** Shows the config dialog with focus set to the given page. */
void
MainWindow::show(Page page)
{
  /* Show the dialog. */
  show();

  /* Set the focus to the specified page. */
  ui.stackPages->setCurrentIndex((int)page);
}


connectionsdialog.h:

Code: Alles auswählen


#ifndef _CONNECTIONSDIALOG_H
#define _CONNECTIONSDIALOG_H

#include <QFileDialog>

#include "configpage.h"
#include "ui_ConnectionsDialog.h"

class ConnectionsDialog : public ConfigPage 
{
  Q_OBJECT

public:
  /** Default Constructor */
  ConnectionsDialog(QWidget *parent = 0);
  /** Default Destructor */
  ~ConnectionsDialog();
  /** Saves the changes on this page */

  /** Loads the settings for this page */


private slots:

  
private:

  /** Qt Designer generated object */
  Ui::ConnectionsDialog ui;
};

#endif
connectionsdialog.cpp

Code: Alles auswählen




#include "ConnectionsDialog.h"


/** Constructor */
ConnectionsDialog::ConnectionsDialog(QWidget *parent)
: ConfigPage(parent)
{
  /* Invoke the Qt Designer generated object setup routine */
  ui.setupUi(this);



  /* Hide platform specific features */
#ifdef Q_WS_WIN
  ui.grpPermissions->setVisible(false);
#endif
}

wer kann sagen wieso?
wie ich es fixen muss?
Zuletzt geändert von defenderLQ am 29. Juli 2006 13:20, insgesamt 1-mal geändert.
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

also ich habe nun zum großteil gefixt die probleme.

nun kann fast einiges kompilieren
aber kommt so ein
undefined reference to:
Qt\4.1.4\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
release\moc_ConnectionsDialog.o(.rdata$_ZTV17ConnectionsDialog[vtable for Connec
tionsDialog]+0x14):moc_ConnectionsDialog.cpp: undefined reference to `Connection
sDialog::~ConnectionsDialog()'
release\moc_ConnectionsDialog.o(.rdata$_ZTV17ConnectionsDialog[vtable for Connec
tionsDialog]+0x18):moc_ConnectionsDialog.cpp: undefined reference to `Connection
sDialog::~ConnectionsDialog()'
release\moc_ConnectionsDialog.o(.rdata$_ZTV17ConnectionsDialog[vtable for Connec
tionsDialog]+0xe8):moc_ConnectionsDialog.cpp: undefined reference to `Connection
sDialog::load()'
release\moc_ConnectionsDialog.o(.rdata$_ZTV17ConnectionsDialog[vtable for Connec
tionsDialog]+0xf4):moc_ConnectionsDialog.cpp: undefined reference to `non-virtua
l thunk to ConnectionsDialog::~ConnectionsDialog()'
release\moc_ConnectionsDialog.o(.rdata$_ZTV17ConnectionsDialog[vtable for Connec
tionsDialog]+0xf8):moc_ConnectionsDialog.cpp: undefined reference to `non-virtua
l thunk to ConnectionsDialog::~ConnectionsDialog()'
release\moc_PeersDialog.o(.rdata$_ZTV11PeersDialog[vtable for PeersDialog]+0x14)
:moc_PeersDialog.cpp: undefined reference to `PeersDialog::~PeersDialog()'
release\moc_PeersDialog.o(.rdata$_ZTV11PeersDialog[vtable for PeersDialog]+0x18)
:moc_PeersDialog.cpp: undefined reference to `PeersDialog::~PeersDialog()'
release\moc_PeersDialog.o(.rdata$_ZTV11PeersDialog[vtable for PeersDialog]+0xe8)
:moc_PeersDialog.cpp: undefined reference to `PeersDialog::load()'
release\moc_PeersDialog.o(.rdata$_ZTV11PeersDialog[vtable for PeersDialog]+0xf4)
:moc_PeersDialog.cpp: undefined reference to `non-virtual thunk to PeersDialog::
~PeersDialog()'
release\moc_PeersDialog.o(.rdata$_ZTV11PeersDialog[vtable for PeersDialog]+0xf8)
:moc_PeersDialog.cpp: undefined reference to `non-virtual thunk to PeersDialog::
~PeersDialog()'
c:\Qt\4.1.4\lib/libqtmain.a(qtmain_win.o)(.text+0x1f7):qtmain_win.cpp: undefined
reference to `qMain(int, char**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\QT-2.exe] Error 1
mingw32-make[1]: Leaving directory `E:/QT-2'
mingw32-make: *** [release] Error 2
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schonmal geschaut ob diese Funktionen überhaupt vorhanden sind?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

also hab es nun auch gefixt als letztes das hier:
:\Qt\4.1.4\lib/libqtmain.a(qtmain_win.o)(.text+0x1f7):qtmain_win.cpp: undefined
reference to `qMain(int, char**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\QT-3.exe] Error 1
mingw32-make[1]: Leaving directory `E:/QT-3'
mingw32-make: *** [release] Error 2
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Jetzt fehlt noch deine main-Methode. Mit Qt3 wurde sie vom Designer erzeugt, mit Qt4 muss sie von Hand implementiert werden.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

also wie muss das main-methode nun aussehen?
und die datei muss qtmain_win.cpp heißen?
muss die dann im source pfad sein?

ich habe doch ein MainWindow.cpp und *.h
das reicht nicht aus?

gibts irgendwo ein Beispiel?

mfg

defenderlq
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

main() ist der Einsprungspunkt deines Programmes,
mindestens das hier:

Datei "main.cpp":

Code: Alles auswählen

#include "MainWindow.h"

int main( int argc, char ** argv )
{  
  QApplication app( argc, argv ); // QT's GUI-Funktionalität initialisieren

  MainWindow w; // hier erst wird dein MainWindow erzeugt
  w.show();

  return app.exec();
}
Und ja, die Datei muss in "SOURCES" auftauchen.

Mfg,
FaS
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

danke es hat nun endlich geklappt!
Antworten