Qt学习-信号与槽

文章介绍了在QtGUI编程中,如何使用四种方法连接信号与槽:1)右键转到槽,2)宏方法,3)地址方式,以及4)使用lambda表达式展示信息。通过这些方法,可以响应用户操作,例如点击按钮启动程序或显示信息。
摘要由CSDN通过智能技术生成

目录

 使用槽四种展示方法

1、右键

2、宏方法

3、地址

4、展示一堆信息


当我们点击某个button的时候,会发出一个信号。即按钮发出点击的信号。

触发的程序就是所谓的槽。

 使用槽四种展示方法

1、右键

按键那里右键【转到槽】,然后必须在widget.cpp包含这个头文件

然后就会在widget.h产生

信号和槽是两个独立的东西,如果要连接他们就需要写连接函数:

connect(谁发出信号,发出什么信号,谁处理信号,怎么处理);

在上图位置编写程序 

void Widget::on_commitButton_clicked()
{
    //获取Lineedit数据
    QString program = ui->cmdlineEdit->text();//ui去访问cmdLineEdit里面的文本,保存到QString类型的program中
                                              //ui作为一个指针,指向界面文件

    //创建process对象
    QProcess *myProcess = new QProcess(this);
    myProcess->start(program);
}

然后点击运行就可以在编辑好的图形界面打开notepad等不需要管理员权限的程序,点击确定右键即可执行。

2、宏方法

如果想输入信息后直接回车,执行槽。

需要在构造函数中

/*构造函数*/
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    /*实现通过敲回车的方法直接跳转到槽*/
    //通过宏的办法
    //连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
    //this是指Widget这个类
    connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
}

3、地址

注意,槽函数写法固定,一定要写在private slots:下面

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

    /*实现通过敲回车的方法直接跳转到槽*/
    //通过宏的办法
    //连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
    //this是指Widget这个类
    connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
    //通过地址的办法
    connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);
}

4、展示一堆信息

首先加头文件

 然后加入函数

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

    /*实现通过敲回车的方法直接跳转到槽*/
    //通过宏的办法
    //连接信号与槽 谁发出信号,发出什么信号,谁处理信号,怎么处理
    //this是指Widget这个类
    connect(ui->cmdlineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
    //通过地址的办法
    connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);

    connect(ui->browseButton,&QPushButton::clicked,[this]()
    {
        QMessageBox::information(this,"信息展示","点击浏览");
    });
}

结果展示,点击浏览有

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值