QT i komunikacja pomiędzy oknami.

0

Czesc.
Mam pewien problem z programem ( temat ten był poruszany na tym forum i z tego korzystałem np: https://4programmers.net/Forum/C_i_C++/167212-QT_przkazywanie_danych_pomiedzy_oknami albo tutaj https://4programmers.net/Forum/C_i_C++/167212-QT_przkazywanie_danych_pomiedzy_oknami)

Mam forme "Glowna" . Po nacisnieciu guzika pojawia mi sie okno V1. Tam mam 2 lineEdit i przycisk. teraz chce po nacisnieciu tego guzika aby wartosci z lineEditów z V1 przesłały się do lineEditów z Glowna. Napisałem program według tematów które wstawiłem wyzej i
mam dziwny błąd że

błąd: expected primary-expression before ',' token
connect(V1, SIGNAL(dane(QString, QString)), Glowna, SLOT(odczytDanych(QString, QString)));
^

oraz

błąd: expected primary-expression before ',' token
connect(V1, SIGNAL(dane(QString, QString)), Glowna, SLOT(odczytDanych(QString, QString)));
^

Nie wiem co to jest za błąd
To są moje kody:
glowna.h:

#ifndef GLOWNA_H
#define GLOWNA_H

#include <QMainWindow>
#include "v1.h"
namespace Ui {
class Glowna;
}

class Glowna : public QMainWindow
{
    Q_OBJECT

public:
    explicit Glowna(QWidget *parent = 0);
    ~Glowna();
    QString zp1;
    QString zp2;

public slots:
    void odczytDanych(QString, QString);

private slots:
    void on_pushButton_2_clicked();
    void on_pushButton_5_clicked();

private:
    Ui::Glowna *ui;
    V1 *v1;
};

#endif // GLOWNA_H

Glowna.cpp

#include "glowna.h"
#include "ui_glowna.h"
#include <QtCore>
#include <QtGui>
#include <QStringList>

Glowna::Glowna(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Glowna)
{
    ui->setupUi(this);
    connect(V1, SIGNAL(dane(QString, QString)), Glowna, SLOT(odczytDanych(QString, QString)));
}

Glowna::~Glowna()
{
    delete ui;
}

void Glowna::on_pushButton_2_clicked()//Zapis do formularza tyg
{

   QStringList seq;
   seq<< ui->comboBox_6->currentText()<<(".txt");
   QString nazw = seq.join("");
   QFile file(nazw);
    file.open(QIODevice::WriteOnly | QIODevice::Append);
    QString a, b,c ,d,e,f,g,h,i ;
    a= ui->lineEdit->text(); /*kto*/
    b= ui->lineEdit_2->text();/*data*/
    c= ui->comboBox_6->currentText();/*aparat*/
    d= ui->comboBox->currentText();/*akce*/
    e= ui->comboBox_2->currentText();/*zab anty*/
    f= ui->comboBox_3->currentText();/*izo*/
    g= ui->comboBox_4->currentText();/*centr*/
    h= ui->comboBox_5->currentText();/*teleme*/
    i= ui->textEdit->toPlainText();/*uwagi*/
    QTextStream out(&file);
    out<< a + ("\t") << b + ("\t\t") <<c + ("\t\t") <<d + ("\t\t") <<e + ("\t\t") <<f + ("\t\t") <<g + ("\t") <<h + ("\t\t") <<i + ("\t\t") ;
    file.flush();
    file.close();



}

void Glowna::on_pushButton_5_clicked()
{
    v1 = new V1(this);
    v1->show();
}

void Glowna::odczytDanych(QString s1, QString n1)
{
    ui->lineEdit_15->setText(s1); ;
    ui->lineEdit_11->setText(n1);

}
 

v1.h

#ifndef V1_H
#define V1_H

#include <QMainWindow>
#include "glowna.h"

namespace Ui {
class V1;
}

class V1 : public QMainWindow
{
    Q_OBJECT

public:
    explicit V1(QWidget *parent = 0);
    ~V1();
    QString z1;
    QString z2;



signals:
    void dane(QString, QString);

private slots:
    void on_pushButton_clicked();

private:
    Ui::V1 *ui;
};

#endif // V1_H
 

v1.cpp

#include "v1.h"
#include "ui_v1.h"

V1::V1(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::V1)
{
    ui->setupUi(this);
}

V1::~V1()
{
    delete ui;
}

void V1::on_pushButton_clicked()
{
    QString z1= ui->lineEdit->text();
    QString z2= ui->lineEdit->text();

    emit dane(z1, z2);
}

Czy po wyeliminowaniu tego błędu uda się przesłać ten text do glowna? Proszę o łopatologiczne wytłumaczenie :)
Dzieki wielkie za wszelką Pomoc :)

           ^
1

Abstrahując od całości - błąd wynika ze sposobu użycia funkcji connect. Do funkcji przesyła się adresy obiektów łączących, a nie ich klasy. Spróbuj tak (zwróć też uwagę na sposób przekazywania adresów składowych funkcji):

void Glowna::on_pushButton_5_clicked()
{
	V1* v1= new V1;
	v1->setAttribute(Qt::WA_DeleteOnClose); // zwolnij obiekt okna po zamknięciu
	v1->show();

	connect(v1, &V1::dane, this, &Glowna::odczytDanych);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1