Qt基础 08_数据传送_顺传

/******************************************************
* 课程名 :QT编程
* 时 间 :2017年6月5日(周一)下午
* 工程名 :10-dataTranslate
* 类 名 :dialog10
* 内 容 :【重点】数据传送 - 顺传
* CSDN :Qt基础 08_数据传送_顺传
******************************************************/

目标:窗口输入两个数,进行计算,弹出新窗口,点击“显示”按钮后,在Label中显示计算结果。

一、弹出窗口的文件建立

新建Qt设计师界面类:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

二、绘制ui界面

主窗口:
这里写图片描述
弹出的窗口:
这里写图片描述

三、方式一:纯C++方式(耦合性大),不使用信号和槽

步骤一:主窗口的功能
1、在dialog.h中手动定义槽函数:(等同于转到槽)


private slots:
    void calcuPushButton(void);

2、在dialog.cpp中实现槽函数:

void Dialog10::calcuPushButton()
{
    //1.获取数据
    int num1 = ui->lineEdit->text().toInt();
    int num2 = ui->lineEdit_2->text().toInt();
    int sum = num1 + num2 ;

    //2.弹出新的对话框
    NewDialog dlg(sum) ;
    dlg.exec();
}

3、在构造函数中添加连接:

connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(calcuPushButton()));

步骤二:弹出窗口的功能
1、在newsdialog.h中重载构造函数:

public:
    explicit NewDialog(QWidget *parent = 0);
    explicit NewDialog(int sum, QWidget *parent = 0);

定义私有成员:

private:
    Ui::NewDialog *ui;
    int _sum;

2、在newsdialog.cpp中实现:

//重载的构造函数
NewDialog::NewDialog(int sum, QWidget *parent):
    QDialog(parent),
    ui(new Ui::NewDialog), _sum(sum)
{
    ui->setupUi(this);

   // ui->lineEdit->setText(QString::number(sum));
}

3、在newdialog.h中定义槽函数:

private slots:
    void on_pushButton_clicked();   //声明"显示"按钮的槽函数

在newdialog.cpp中实现:

void NewDialog::on_pushButton_clicked()
{
    ui->lineEdit->setText(QString::number(_sum));
}

四、方式二:信号和槽

步骤一:主窗口的功能
1、在dialog.h中定义信号:

signals:
    void sumResult(QString strSum);

2、在dialog.cpp中实现:

void Dialog10::calcuPushButton()
{
    //1.获取数据
    int num1 = ui->lineEdit->text().toInt();
    int num2 = ui->lineEdit_2->text().toInt();
    QString sumStr = QString::number(num1 + num2 );

    //2.弹出新的对话框
    NewDialog dlg;

    connect(this,SIGNAL(sumResult(QString)),&dlg,SLOT(getSumResult(QString)));
    emit sumResult(sumStr);
    dlg.exec();
}

步骤二:弹出窗口的功能
1、在newdialog.h中定义槽函数:

private slots:
    void on_pushButton_clicked();   //声明"显示"按钮的槽函数
    void getSumResult(QString sumStr);

2、在newdialog.cpp中实现槽函数:

void NewDialog::getSumResult(QString sumStr)
{
    ui->lineEdit->setText(sumStr);
}

五、方式三:信号和槽(不用exec(),用show())

其余都与四相同
在dialog.cpp中实现改为:

void Dialog10::calcuPushButton()
{
    //1.获取数据
    int num1 = ui->lineEdit->text().toInt();
    int num2 = ui->lineEdit_2->text().toInt();
    QString sumStr = QString::number(num1 + num2 );

    //2.弹出新的对话框
    NewDialog *pdlg = new NewDialog;
    pdlg->setAttribute(Qt::WA_DeleteOnClose);
    connect(this,SIGNAL(sumResult(QString)),pdlg,SLOT(getSumResult(QString)));
    pdlg->show();

    emit sumResult(sumStr);
}

源代码:http://download.csdn.net/download/c_estbon/9865733

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值