Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: aurquiel en 18 Noviembre 2016, 20:51 pm



Título: QT Creator C++, importar valor de lineEdit a funcion en una nueva clase
Publicado por: aurquiel en 18 Noviembre 2016, 20:51 pm
Hola podría alguien ayudarme a hacer esto, imporar el valor de un lineEdit a una función en una nueva clase.

He creado una nueva clase con la ayuda de QT Creator llamada Ag y me añdio los archivos .h .cpp

ag.h
Código:
#ifndef AG_H
#define AG_H

#include <QMainWindow>
#include <QObject>
#include <QSharedDataPointer>
#include <QWidget>

class AGData;

class AG
{
public:
    AG();
    AG(const AG &);
    AG &operator=(const AG &);
    ~AG();
void genetic::fitness()

private:
    QSharedDataPointer<AGData> data;

};

#endif // AG_H

ag.cpp
Código:
#include "ag.h"

class AGData : public QSharedData
{
public:

};

AG::AG() : data(new AGData)
{

}

AG::AG(const AG &rhs) : data(rhs.data)
{

}

AG &AG::operator=(const AG &rhs)
{
    if (this != &rhs)
        data.operator=(rhs.data);
    return *this;
}

AG::~AG()
{

}

Ahora añado una función llamada fitness a la clase y unas variables privadas matrix2,i.

En la función fitness hay una variable a esa variable a sería tomada del lineEdit

ag.h
Código:
#ifndef AG_H
#define AG_H

#include <QMainWindow>
#include <QObject>
#include <QSharedDataPointer>
#include <QWidget>

class AGData;

class AG
{
public:
    AG();
    AG(const AG &);
    AG &operator=(const AG &);
    ~AG();
     void fitness();

private:
    QSharedDataPointer<AGData> data;
    unsigned long int i;
    double matrix2[100][3];

};

#endif // AG_H

ag.cpp
Código:
#include "ag.h"

class AGData : public QSharedData
{
public:

};

AG::AG() : data(new AGData)
{

}

AG::AG(const AG &rhs) : data(rhs.data)
{

}

AG &AG::operator=(const AG &rhs)
{
    if (this != &rhs)
        data.operator=(rhs.data);
    return *this;
}

AG::~AG()
{

}

void AG::fitness(){
    for (i=0;i<100;i++){
        matrix[i][1]=a*100;
    }

}

Tengo dudas de como introducir ese valor en mi clase no se como usar un apuntador a esa varible, ademas no se si tengo que darle datos de entrada a la funcion como void fitness(double a);

De verdad le he estado dando vueltas y revisado por Internet pero no encuentro como.


Título: Re: QT Creator C++, importar valor de lineEdit a funcion en una nueva clase
Publicado por: Becerra en 18 Noviembre 2016, 23:14 pm
Hola

Qt es C++, por tanto tienes que hacer como en cualquier programa escrito en C++.

Si quieres pasar el valor de un QLineEdit que está en una clase, a un método de otra clase, se lo tendrás que pasar como parámetro en la función cuando la llamas.

Si ese valor no va a cambiar y ya está disponible cuando creas la instancia de la segunda clase, también puedes pasárselo en el constructor de la clase, guardarlo en una variable y desde ahí podrá usarlo el método en cuestión.

Un saludo