Important: Please read the Qt Code of Conduct -

Question about Class and Pointers to them.

  • Hello my Qt Guru's
    It's probably a trivial question but I'm restyling with it a bit and i cant still find solution.
    Idea of my program is Load data from file ( 3d object as *obj or *lwo ) then do some calculation modification on loaded data, and strip it to simple 3d vertex coordinates and line definitions then generate result file with this proceed data.
    Sounds trivial i already wrote something like that in C but is a console app.
    I wand now a GUI and maybe when i get on with Qt i will add some editing options, but for now noobe question time.

    My problem is a Class and passing it to other functions, I trying to store loaded data into a class and then pass them by pointer, to this class.
    I'm created a very simple code illustrating problem instead of pasting 100- lines of garbage code.

    @class TestClass

    int someData;
    QVector<QVector3D> someComplexData;


    //simply setters
    void set_Data(int dat)
    {  someData = dat; }
    void add_vertex (QVector3D Vertex)
        someComplexData.append (Vertex);
    //simply getters
    int get_Data()
        int databack;
        databack = someData;
    float get_Vertex_x (int vertex_no)
        QVector3D rVertex;
        float rX;
        rVertex = (vertex_no);
        rX = rVertex.x ();
    // similar getters for Y and Z coordinates


    and Main Window there a two push buttons one to load one to do something,.

    @MainWindow::MainWindow(QWidget *parent) :
    ui(new Ui::MainWindow)

    delete ui;

    void MainWindow::on_Load_D_clicked()
    // normaly i wil load data from file//
    int loaded_int = 100;
    QVector3D Point3d;

    TestClass *myClass = new TestClass;
    myClass->set_Data (loaded_int);
    // generating some points instead of load them  
    for(int i=0; i<4 ; i++)
    Point3d.setX (0.5 +i);
    Point3d.setY (4.01 *i);
    Point3d.setZ (10.5 -(2*i));
    myClass->add_vertex (Point3d);
    // geting some of them back
    int A;
    float X_cords;
    A = myClass->get_Data ();
    X_cords = myClass->get_Vertex_x (1);
    qDebug() << A;
    qDebug() << X_cords;   // ok points are in object in class :)


    void MainWindow::on_Do_something_clicked()
    * Main question is how acces ( object ) data from TestClass called by by other function
    * or how pass a pointer to this class

    Q 1:
    How pass a pointer o reference to already decelerated instance of class to other function
    Q 2:
    How declarate function in mainWindow.h in "private slots:" for passing a pointer to class, like that
    void some_function()
    TestClass *myClass = new TestClass;
    // add some data to the class

    proces_data(myClass); // call other function passing pointer to class
    void proces_data(TestClass *passedClass)

    Q 3.
    if is a possibility to return a whole array. how to do this ? instead of calling getters for each parameter.
    @return QVectro<QVector3D> (pointer to vector);@

    or just one dimensional array
    @return QVector3D (v3d);@

Log in to reply