можно с помощью сигналов и слотов:
у тебя есть диалог с его классом, в нем объявляешь сигнал с параметром который будешь передавать, и коннектишь в его конструкторе со слотом, который уже объявлен в материнском окне. Выглядит так:
слот в основном окне:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <stdio.h>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
QString IntToString(int numb);
private:
Ui::MainWindow *ui;
public slots:
void on_pushButton_clicked();
[color=red] void TransmitParamSpinBoxSlot(int SpinBoxParam);[/color]
};
void MainWindow::TransmitParamSpinBoxSlot(int SpinBoxParam)
{
ui->lineEdit->setText(IntToString(SpinBoxParam));
};
сигнал объявляем
#ifndef SPINBOXDIALOG_H
#define SPINBOXDIALOG_H
#include "ui_SpinBoxdialog.h"
#include "QDialog"
#include "QWidget"
class SpinBoxDialog:public QDialog, public Ui::SpinBoxDialog{
Q_OBJECT
public:
SpinBoxDialog(QWidget *parent=0);
signals:
[color=red]void TransmitParamSpinBoxSignal(int SpinBoxParam);
[/color]
private slots:
void on_pushButton_clicked();
};
#endif // SPINBOXDIALOG_H
коннектим в конструкторе, в *parent у нас указатель на класс материнского окна.
SpinBoxDialog::SpinBoxDialog(QWidget *parent)
{
setupUi(this);
connect(this,SIGNAL(TransmitParamSpinBoxSignal(int)),parent,SLOT(TransmitParamSpinBoxSlot(int)));
};
и собственно отправляем сигнал с параметром:
void SpinBoxDialog::on_pushButton_clicked()
{
emit TransmitParamSpinBoxSignal( spinBox->value());
emit close();
}
ПС: если что вот проект
http://depositfiles.com/files/ml8v84osf 600к весит