这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » 跟machinnneee一起玩基于linux的QT编程(第八篇 初探信号与槽)-

共3条 1/1 1 跳转至

跟machinnneee一起玩基于linux的QT编程(第八篇 初探信号与槽)----基于SIN210

专家
2016-09-08 15:37:17     打赏

    广大的坛友,最近由于时间关系,没有及时来更新。对大家说声sorry。

    今天为大家介绍一下 Qt编程中信号与槽的概念。  对于信号与槽的解释,更多的信息可以找度娘看看。在我的理解中,首先要明白一件事情,在Qt编程中,要想实现一个事情(槽)必须有触发条件(信号)。

   首先看一下简单的例子:

#include "mainwindow.h"
#include "ui_mainwindow.h"

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

    ui->progressBar->setValue(0);

    connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),
            ui->progressBar,SLOT(setValue(int)));
    //disconnect();

}

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

 

  




关键词: machinnneee     linux     Qt          信号         

专家
2016-09-08 15:41:59     打赏
2楼
//在本例子中,在ui界面上添加了progressbar 和horizontalSlider,
//通过   connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),
//            ui->progressBar,SLOT(setValue(int)));
//实现信号与槽的通信。信号与槽的典型应用为:
//   connect(对象1,SIGNAL(什么条件下触发),
 //           对象2,SLOT(触发的结果为什么);

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
//在ui界面中将progressbar的数值设置为0
    ui->progressBar->setValue(0);
//连接progressbar 和horizontalSlider

    connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),
            ui->progressBar,SLOT(setValue(int)));
//如果将两者不连接,那么两个wigit没有任何关系了
    //disconnect();

}

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

 


专家
2016-09-08 15:43:03     打赏
3楼
最终,在用鼠标拖动horizontalSlider时progressbar 会提示数值的变化。
更更加深入的讲解见后面介绍。

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]