Hallo, ich versuche im 2 Fenster 2 des unteren Proggis Text der unteren QLineEdit nach oben zu übernehmen (mit testen ()), stürzt ab und wird oben(QlineEdit) nicht angezeigt . Warum klappt es nicht, bin Neuling in QT? Hier Counter.h: #include QLineEdit #include QPushButton #include QDialog
class Counter : public QLineEdit
{
Q_OBJECT // Enable signals and slots
public:
Counter (QWidget *parent=0);
~Counter();
QPushButton *cl, *plus;
QWidget *fen;
public slots:
void countUp();
void testen();
void MeinFenster();
private:
char zahlwort[200];
Counter *gf, *hf;
int n;
QString zahli;
};
hier Counter.cpp
#include "counter.h"
Counter::Counter (QWidget *parent)
: QLineEdit (parent),
n(0){}
Counter::~Counter() {}
void Counter :: MeinFenster() //QWidget parent)
{
fen = new QWidget();
fen->setGeometry(100,200,300,200);
fen->show();
gf = new Counter(fen); // Eigentlich als Eingabe gedacht
gf->setGeometry(10,10,100,20);
gf->show();
hf = new Counter(fen); // Als Ausgabe der Berechnungen gedacht
hf->setGeometry(10,50,100,20);
hf->show();
hf->setText(zahli);
cl = new QPushButton("test", fen);
cl->setGeometry(50,120,95,20);
cl->show();
plus = new QPushButton("plus", fen);
plus->setGeometry(50,150,95,20);
plus->show();
QObject::connect(cl, SIGNAL (clicked()), gf, SLOT(testen()));
QObject::connect(plus, SIGNAL (clicked()), hf, SLOT(countUp()));
}
void Counter::countUp ()
{
zahli = text();
n = zahli.toInt();
n++;
zahli.setNum(n);
setText(zahli);
}
void Counter :: testen()
{
zahli = hf->text();
setText(zahli);
}
Counter::Counter (QWidget *parent)
: QLineEdit (parent),
n(0){}
Counter::~Counter() {}
void Counter :: MeinFenster() //QWidget parent)
{
fen = new QWidget();
fen->setGeometry(100,200,300,200);
fen->show();
gf = new Counter(fen); // Eigentlich als Eingabe gedacht
gf->setGeometry(10,10,100,20);
gf->show();
hf = new Counter(fen); // Als Ausgabe der Berechnungen gedacht
hf->setGeometry(10,50,100,20);
hf->show();
hf->setText(zahli);
cl = new QPushButton("test", fen);
cl->setGeometry(50,120,95,20);
cl->show();
plus = new QPushButton("plus", fen);
plus->setGeometry(50,150,95,20);
plus->show();
QObject::connect(cl, SIGNAL (clicked()), gf, SLOT(testen()));
QObject::connect(plus, SIGNAL (clicked()), hf, SLOT(countUp()));
}
void Counter::countUp ()
{
zahli = text();
n = zahli.toInt();
n++;
zahli.setNum(n);
setText(zahli);
}
void Counter :: testen()
{
zahli = hf->text();
setText(zahli);
}
soll hf->text() heißen main.cpp = okay. Kann nicht auf Text der anderen mit Counter gesetzten QLineEdit-Elemente zurückgreifen. CountUp= ok.. Wird ohne Fehler / Warnmeldungen compiliert. Aber wenn ich versuche mit testen gf->text auf den Text vom Element gf zurückzugreifen will, stürzt das Prog ab. setText("hallo") wird angezeigt warum? Falsche Klasse oder was?