Qt信号与槽例子

在Qt程序开发中经常遇到打开一个对话框设置一个某个值后返回到主界面的场景,这可以用信号与槽简单实现。
首先在需要打开的对话框中定义一个信号,在对话框退出时候发送给主界面:
    signals:
    void dlgReturn(int);// 自定义信号


    int value = ui->spinBox->value();
    //  发送信号
    emit dlgReturn(value);
    close();


    然后需要在主界面中定义接收信号的槽函数:
    private slots:
    void showValue(int value);
    主界面:

#include "widget.h"
#include "ui_widget.h"
#include "mydialog.h"
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    MyDialog *dlg = new MyDialog(this);
    connect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
    dlg->show();
}


Widget::~Widget()
{
    delete ui;
}
void Widget::showValue(int value)
{
    ui->label->setText(tr("获取的值是:%1").arg(value));
}
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(Qt)