Hallo,
Ich schaffe es nicht zwischen 2 Klassen Werte hin und her zu schieben.
Das Problem etwas genauer:
Ich erstelle eine Klasse MainWindow, hier wird das grobe Layout erstellt.
Wenn ich nun eine zweite Klasse so etwas wie InhaltTab erstelle, welches den Inhalt eines Tabs enthält und dort ein QLineEdit ist.
Wie schaffe ich es im MainWindow auf den Inhalt des QLineEdits zuzugreifen?
Oder ein anderes Beispiel: ein Options Menu, wie schaffe ich dem MainWindow zu sagen, die Optionen wurden geändert lies neu!
Und Auch dort Inhalte eines QLineEdit (oder beliebiges anderes) vom MainWindow zum Optionsmenu, bzw. zurück zu lesen/schreiben.
Ich bin zwar in der Lage Slots innerhalb der selben Klasse zu benutzen, etwa SIGNAL(clicked()), aber untereinander nicht.
Ich hoffe ich habe es verständlich erklärt und bitte um einen Hinweis, oder noch lieber ein kleines Beispiel Programm.
Danke
Austausch von QWidgets zwischen Klassen
-
akirahinoshiro
- Beiträge: 17
- Registriert: 22. Mai 2012 20:17
-
akirahinoshiro
- Beiträge: 17
- Registriert: 22. Mai 2012 20:17
Re: Austausch von QWidgets zwischen Klassen
Ja bestimmt, ich habe aber gerade erst mit Qt angefangen und sehe die Bäume vor lauter Wald nicht, daher bitte ich um etwas Rücksicht und evtl. einen kleinen Code Snippet.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Austausch von QWidgets zwischen Klassen
http://doc.trolltech.com/4.7/examples-widgets.html würde ich anfangen...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
akirahinoshiro
- Beiträge: 17
- Registriert: 22. Mai 2012 20:17
Re: Austausch von QWidgets zwischen Klassen
Naja wie gesagt ich hab das ganze mit Hilfe der Beispiele innerhalb einer Klasse hingekriegt.
Ich kann allerdings die Beispiele nicht direkt auf mein Problem übertragen.
Vielleicht seht ihr ja den/die Fehler wenn ich meine sourcen zeige.
main.cpp:
mainwindow.h:
mainwindow.cpp:
PS: Ich habe den Code etwas gekürzt, es müsste aber alles für das Problem wichtige enthalten sein (ja ich weiß die #includes fehlen auch)
PPS: Der Fehlercode wäre evtl. auch interessant:
error C2275: 'MainWindow' : illegal use of this type as an expression
Ich kann allerdings die Beispiele nicht direkt auf mein Problem übertragen.
Vielleicht seht ihr ja den/die Fehler wenn ich meine sourcen zeige.
main.cpp:
Code: Alles auswählen
#include "mainwindow.h"
#include <QApplication>
int main( int argc, char ** argv )
{
QApplication app( argc, argv );
MainWindow mainwindow;
mainwindow.resize( 700, 800 );
mainwindow.show();
return app.exec();
}Code: Alles auswählen
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
protected:
virtual void closeEvent(QCloseEvent *e);
private:
void setupFileActions();
void setupEditActions();
void setupTextActions();
QTabWidget *tabWidget;
QAction *actionUndo;
QString text;
public slots:
void setText(const QString &newText) {text = newText;}
};
class Plot: public QwtPlot
{
Q_OBJECT
public:
Plot(QWidget * = NULL);
public Q_SLOTS:
private:
QwtPlotSpectrogram *d_spectrogram;
};
class QTabWidget;
class GeneralTab : public QWidget
{
Q_OBJECT
public:
GeneralTab();
private:
QLineEdit *testEdit;
public slots:
//void tmp();
signals:
//void mysignal(const QString &);
};
class blaTab : public QWidget
{
Q_OBJECT
public:
blaTab();
public slots:
void setText(const QString &newText) {text = newText;}
private:
QString text;
};
#endif
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
tabWidget = new QTabWidget;
setCentralWidget(tabWidget);
tabWidget->addTab(new GeneralTab(), tr("input"));
tabWidget->addTab(new blaTab(), tr("surface"));
}
blaTab::blaTab()
{
}
GeneralTab::GeneralTab()
{
testEdit = new QLineEdit();
connect(testEdit, SIGNAL(textChanged(QString)),MainWindow,SLOT(setText(QString)));
}
PPS: Der Fehlercode wäre evtl. auch interessant:
error C2275: 'MainWindow' : illegal use of this type as an expression