UI-Files und Zugriff auf die Objekte
UI-Files und Zugriff auf die Objekte
Hallo liebe Forengemeinde,
ich bin n och relativ neu zu QT und habe jetzt angefangen mit dem QTCreator zua rbeiten. Infolgedessen habe ich nun auch mal meine GUI mit dem Designer zusammengeklickt, allerdings habe ich da jetzt das Problem, dass ich in meiner gui.cpp nicht auf die Objekte der GUI zugreifen kann. Als Compilerfehlermeldung bekomme ich "objektname" was not declared in this scope.
Der entsprechende ui-header ist inkludiert und eigentlich sollte das ganze funktionieren.
Hab auch schon gegoogelt, aber mangels geeigneter Begriffe zum Beschrieben des Problems bin ich da auch nicht wirklich weiter gekommen. Es ist wahrscheinlich wohl nur irgend ein kleiner Fehler,a ber ich steht gerade vorm Scheunentor.
ich wollte zugreifen mittels: QString string = lineOrt->text(); als Beispiel.
Über Antworten würde ich mich sehr freuen.
Greez
Sandhase
ich bin n och relativ neu zu QT und habe jetzt angefangen mit dem QTCreator zua rbeiten. Infolgedessen habe ich nun auch mal meine GUI mit dem Designer zusammengeklickt, allerdings habe ich da jetzt das Problem, dass ich in meiner gui.cpp nicht auf die Objekte der GUI zugreifen kann. Als Compilerfehlermeldung bekomme ich "objektname" was not declared in this scope.
Der entsprechende ui-header ist inkludiert und eigentlich sollte das ganze funktionieren.
Hab auch schon gegoogelt, aber mangels geeigneter Begriffe zum Beschrieben des Problems bin ich da auch nicht wirklich weiter gekommen. Es ist wahrscheinlich wohl nur irgend ein kleiner Fehler,a ber ich steht gerade vorm Scheunentor.
ich wollte zugreifen mittels: QString string = lineOrt->text(); als Beispiel.
Über Antworten würde ich mich sehr freuen.
Greez
Sandhase
Hallo,
danke für die schnelle Hilfe, funktioniert aber leider nur teilweise. Den Zugriff im Konstruktor der GUI Klasse konnte ich so lösen, allerdings greife ich noch in einem selbst definierten Slot auf die Elemente zu. Dort bekomme ich nun die Meldung, dass ui nicht deklariert wurde.
Ich habe dann probiert mittels dem globalen Zugriff über gui::ui->etc.. zuzugreifen udn zumindest über die Kontextmenus des QTCreators konnte ich auch alles entsprechende auswählen, allerdings bekomme ich dann beim bauen wiederum neue Fehler, dass ui ja private ist.
Würde es helfen ui als static zu definieren?
Greez
Sandhase
danke für die schnelle Hilfe, funktioniert aber leider nur teilweise. Den Zugriff im Konstruktor der GUI Klasse konnte ich so lösen, allerdings greife ich noch in einem selbst definierten Slot auf die Elemente zu. Dort bekomme ich nun die Meldung, dass ui nicht deklariert wurde.
Ich habe dann probiert mittels dem globalen Zugriff über gui::ui->etc.. zuzugreifen udn zumindest über die Kontextmenus des QTCreators konnte ich auch alles entsprechende auswählen, allerdings bekomme ich dann beim bauen wiederum neue Fehler, dass ui ja private ist.
Würde es helfen ui als static zu definieren?
Greez
Sandhase
1) Du erbst Private von deiner UI-Klasse, dann sind die ganzen ui-Elemente automatisch Teil deiner Klasse.
2) Du gibst deiner Klasse einen Member des Typs deiner Ui-Klasse. dann können alle Methoden deiner Klasse auf die ui-Elemente zugreifen.
Mehr gibts hier
2) Du gibst deiner Klasse einen Member des Typs deiner Ui-Klasse. dann können alle Methoden deiner Klasse auf die ui-Elemente zugreifen.
Mehr gibts hier
Hmmm...
also wenn ich da gerade richtig durchgeblickt hab, dann hab ich den Punkt, den du unter 2. genannt hast eigentlich. in meinem gui.h ist ja ein member der ui-klasse definiert.
ich stell einfach mal meine gui.h und gui.cpp rein...
gui.h:
gui.cpp:
Dankeschön
Greez
Sandhase
also wenn ich da gerade richtig durchgeblickt hab, dann hab ich den Punkt, den du unter 2. genannt hast eigentlich. in meinem gui.h ist ja ein member der ui-klasse definiert.
ich stell einfach mal meine gui.h und gui.cpp rein...
gui.h:
Code: Alles auswählen
#ifndef GUI_H
#define GUI_H
#include <QtGui/QMainWindow>
namespace Ui
{
class guiClass;
}
class gui : public QMainWindow
{
Q_OBJECT
public:
gui(QWidget *parent = 0);
~gui();
public slots:
void speichern();
private:
Ui::guiClass *ui;
};
#endif // GUI_H
Code: Alles auswählen
#include "gui.h"
#include "ui_gui.h"
#include "calcMethods.h"
gui::gui(QWidget *parent)
: QMainWindow(parent), ui(new Ui::guiClass)
{
ui->setupUi(this);
connect(ui->saveQN,SIGNAL(clicked()),this,SLOT(speichern()));
}
void speichern()
{
int number;
int day;
int month;
int year;
double betrag;
QString ort;
QString zweck;
QString sonstiges;
QString owner;
QString help;
QString date;
number =ui->lineQNR->text();
betrag =ui->lineBetrag->text().toDouble();
ort = ui->lineOrt->text();
zweck =ui->lineZweck->text();
owner = ui->comboBTunten->currentText();
sonstiges = ui->textEditSonstiges->toPlainText();
date = ui->lineDate->text();
help = date.section('.',0,0);
day = help.toInt();
help = date.section('.',1,1);
month = help.toInt();
help = date.section('.',2,2);
year = help.toInt();
neueQuittung(number,day,month,year,betrag,ort,zweck,sonstiges,owner);
}
gui::~gui()
{
delete ui;
}
Greez
Sandhase
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: