QT4: глобальные переменные, или как из одного класса передать в другой значение Label

Компьютеры программирование C++ Mac qt

Такой вопрос. Есть 2 класса и 2 header файла. каждому классу соответствует своя форма. на форме1 есть текстовое поле мне надо что бы при клике кнопки на форме два из текстового поля бралось значение и передавалось как значение для уже созданого label. Не работает. Вот код. что исправить?
mainw.h


#ifndef MAINW_H
#define MAINW_H

#include <QMainWindow>
#include "start.h"
#include <QString>
namespace Ui {
class MainW;
}

class MainW : public QMainWindow
{
Q_OBJECT

public:
explicit MainW(QWidget *parent = 0);
~MainW();
start* st;
MainW* wt1;
static QString log1;

private:
Ui::MainW *ui;

private slots:
void on_edit_login_editingFinished();
void on_button_exit_clicked();
void on_button_login_clicked();


};

#endif // MAINW_H

start.h


#ifndef START_H
#define START_H

#include <QWidget>

namespace Ui {
class start;
}

class start : public QWidget
{
Q_OBJECT


public:
explicit start(QWidget *parent = 0);
~start();

private:
Ui::start *ui;

private slots:
void on_pushButton_clicked();
};

#endif // START_H

main.cpp


#include <QtGui/QApplication>
#include "mainw.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
start w;
w.hide();
MainW w1;
w1.show();
w1.st = &w;
w1.wt1 =&w1;
return a.exec();
}

mainw.cpp

#include "start.h"
#include "ui_start.h"
#include "mainw.h"
#include "ui_mainw.h"


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

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

void MainW::on_button_login_clicked()
{

st->show();
wt1->hide();

MainW::log1= this->ui->edit_login->text();
}

void MainW::on_button_exit_clicked()
{

}

void MainW::on_edit_login_editingFinished()
{

}

start.cpp


#include "start.h"
#include "ui_start.h"
#include "mainw.h"
#include "ui_mainw.h"


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

ui->label->setText(MainW::log1);

}

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

void start::on_pushButton_clicked()
{

}


Примечание:
SetText у меня происходит но в другом окне. дело в том что у меня вообще не компилируется программа с ошибкой линкера.  id2
Ответы:
Во-первых, код с использованием статических переменных, по определению кривой.
Кидай ошибку - разберемся.
В Qt удобнее всего организовать взаимодействие между классами через сигналы и слоты!
Ошибка линкера была в стиле "collect2: ld returned 1 exit STATUS" без комментариев вообще.
Проблема уже решена. Была найдена страничка "частые ошибки компиляции в Qt". Она помогла.
Очередное портированное гавно


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.