Ну, как я и думал... Я тоже учусь, и когда-то тоже так начинал
Обращаться к обьектам, так, как это делаете Вы нельзя. Поясню. "Ui" - обьект класса MainWindow, он создан в нем, и пренадлежит только ему. Обращаться стандартным способом к нему можно только из класса MainWindow. Из других классов непосредственно - нельзя. (
Можно, но это - изврат) Посоветовать могу изучить модель сигнал-слот. В Qt очень часто используеться, рано или поздно Вам нужно будет разобраться с ней. Поэтому, рекомендую начать уже.
Или, разобраться в таком коде:
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void setText(); // тут акцентировать внимание
protected:
Ui::MainWindow *ui;
void changeEvent(QEvent *e);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::setText() //Обратить внимание на эту функцию
{
ui->lineEdit->setText("1");
}
w.h
#ifndef W_H
#define W_H
#include <QTcpSocket>
#include "MainWindow.h"
class w1: public QTcpSocket
{
Q_OBJECT;
public:
w1(MainWindow* window,/*Обратить внимание*/ QObject *parent = 0);
};
#endif // W_H
w.cpp
#include <QtNetwork>
#include "w.h"
#include "mainwindow.h"
w1::w1(MainWindow* window, /*Обратить внимание*/ QObject *parent) : QTcpSocket(parent)
{
window.setText(); // и тут тоже подумать.
}
П. С. Для понимания слудует знать что такое указатели.
Смотрел в gedit, если что забыл поправить - простите, в QtCreator проект не окрылся