Anfängerproblem mit LineEdit
Anfängerproblem mit LineEdit
Hi,
Ich bin neu in Sachen QT, deshalb hab ich auch noch so meine Probleme...
Das Grundsätzliche Prinzip der Connections, also Signals und Slots habe ich verstanden, nur habe ich folgendes Problem.
Ich habe mehrere LineEdit's und möchte dass sobald ich auf den Button 'Errechnen' klicke eine Funktion gestartet wird, meinetwegen die Funktion 'Rechne()'.
In der Funktion werden dann die Werte aller Textfelder ausgelesen und in Variablen gespeichert, dann wird gerechnet und das Ergebnis wieder in die entsprechenden LineEdit's eingefügt.
Noch komfortabler wäre es für mich wenn die Daten der LineEdits immer in Variablen gespeichert sind und ich mit diesen Rechnen kann, und dann die Ergebnisse per setText wieder einsetzen kann. (Also Wie in einer Schleife)
Geht so etwas und wenn ja, wie?
Hoffe ihr könnt mein Problem nachvollziehen, da ich schon eine Weile dran sitze.
Mfg
Fatal1ty
Ich bin neu in Sachen QT, deshalb hab ich auch noch so meine Probleme...
Das Grundsätzliche Prinzip der Connections, also Signals und Slots habe ich verstanden, nur habe ich folgendes Problem.
Ich habe mehrere LineEdit's und möchte dass sobald ich auf den Button 'Errechnen' klicke eine Funktion gestartet wird, meinetwegen die Funktion 'Rechne()'.
In der Funktion werden dann die Werte aller Textfelder ausgelesen und in Variablen gespeichert, dann wird gerechnet und das Ergebnis wieder in die entsprechenden LineEdit's eingefügt.
Noch komfortabler wäre es für mich wenn die Daten der LineEdits immer in Variablen gespeichert sind und ich mit diesen Rechnen kann, und dann die Ergebnisse per setText wieder einsetzen kann. (Also Wie in einer Schleife)
Geht so etwas und wenn ja, wie?
Hoffe ihr könnt mein Problem nachvollziehen, da ich schon eine Weile dran sitze.
Mfg
Fatal1ty
Code: Alles auswählen
void Rechne() {
bool ok=false;
bool allOk=true;
double value1;
double value2;
value1=textedit1->text().toDouble(&ok);
allOk=allOk && oK;
value2=textedit2->text().toDouble(&ok);
allOk=allOk && oK;
if (allOk) {
value1*=3;
value2*=4;
textedit1->setText(QString::number(value1));
textedit2->setText(QString::number(value2));
}
}
RE:
Ok ich glaube da hab ich irgendwas noch nicht richtig verstanden... Ich hab mir das mal alles durchgelesen und umprogrammiert, habe zurzeit nur das Problem das er da:
Hinter Picture noch ein Qt::ImageConversionFlags haben will, was soll ich da angeben, habs schon mit vielem probiert, und merkwürdig finde ich auch dass es in der main funktion kein Qt::ImageConversionFlags mehr haben will und ihm nur das QImage reicht...
So, ich habe jetzt mal probiert es einzubauen, hier mal die Headerdatei:
Und die .Cpp
So ich kriege folgende Fehlermeldung
Kann mir das mal einer erklären? Ich verzweifel bald.
Code: Alles auswählen
Label->setPixmap(QPixmap::fromImage(picture));
So, ich habe jetzt mal probiert es einzubauen, hier mal die Headerdatei:
Code: Alles auswählen
#ifndef MAIN_H
#define MAIN_H
#include <QWidget>
class Gui : public QWidget
{
Q_OBJECT
public:
Gui(QWidget *parent = 0);
public slots:
void fangAn();
};
#endif
Code: Alles auswählen
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>
#include <QGraphicsScene>
#include <QLabel>
#include <QPicture>
#include <QLineEdit>
#include <QPainter>
#include <QCleanlooksStyle>
#include <iostream>
#include "main.h"
QLineEdit *Glaslaenge = 0;
QLineEdit *Neigung = 0;
QLineEdit *UKRinne = 0;
QLineEdit *UKTraeger = 0;
QLineEdit *UKWandanschluss = 0;
QLineEdit *OKWandanschluss = 0;
QLineEdit *HKStuetze = 0;
QLineEdit *VKStuetze = 0;
QLineEdit *VKRinne = 0;
QPushButton *quit = 0;
Gui::Gui(QWidget *parent) : QWidget(parent)
{
setFixedSize(542, 718);
QApplication::setStyle(new QCleanlooksStyle);
/*
QLabel *Label=new QLabel(this);
QImage *picture = new QImage;
picture->load("KaltdachSkizze.png"); // load picture
QPainter *painter = new QPainter;
painter->begin(this); // paint in myWidget
painter->end();
Label->setPixmap(QPixmap::fromImage(picture));
*/
Glaslaenge = new QLineEdit(this);
Glaslaenge->setGeometry(142,36,61,22);
Neigung = new QLineEdit(this);
Neigung->setGeometry(146,117,61,22);
UKRinne = new QLineEdit(this);
UKRinne->setGeometry(33,433,61,22);// <-+120
UKTraeger = new QLineEdit(this);// |
UKTraeger->setGeometry(264,433,61,22); //|
UKWandanschluss = new QLineEdit(this);
UKWandanschluss->setGeometry(383,433,61,23);
OKWandanschluss = new QLineEdit(this);
OKWandanschluss->setGeometry(470,433,61,22);
HKStuetze = new QLineEdit(this);
HKStuetze->setGeometry(290,595,61,23);
VKStuetze = new QLineEdit(this);
VKStuetze->setGeometry(290,633,61,23);
VKRinne = new QLineEdit(this);
VKRinne->setGeometry(290,683,61,22);
quit = new QPushButton("Beenden", this);
quit->resize(75, 30);
quit->setGeometry(10,10,100,30);
quit->setFont(QFont("Verdana", 12, QFont::Normal));
quit->show();
QObject::connect(quit, SIGNAL(clicked()), this, SLOT(fangAn()));
}
void Gui::fangAn()
{
std::cout<<"Hallo\n";
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Gui widget;
widget.show();
return app.exec();
}
- undefined reference to `vtable for Gui'
Kann mir das mal einer erklären? Ich verzweifel bald.
Code: Alles auswählen
Noch komfortabler wäre es für mich wenn die Daten der LineEdits immer in Variablen gespeichert sind und ich mit diesen Rechnen kann, und dann die Ergebnisse per setText wieder einsetzen kann. (Also Wie in einer Schleife) außerdem wäre das ne kuriose schleife!
und außerdem sieht dein code ziemlich schräg aus. sowas habe ich mit 9 jahren gemacht.