Qt信号与槽

初步认识qt组件,了解基本原理和函数执行过程。

主函数文件main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

QAoolication a(argc,argv) 使用框架 并且创建一个类

Wiget w 为窗口类

w.show() 为展示窗口

与普通c语言不同的是 return 的不再是0 而是 a.exec() 意味着无限调用程序

头文件widget.h

#include <QWidget> // 最大基类
#include <QProcess> // 启动新的进程必须引用
#include <QMessageBox> // 弹窗头文件

#include <QProcess> // 启动新的进程必须引用

  // 所有槽函数必须加上solts关键字
private slots:
    void on_commitButton_clicked();
    void on_cancelButton_clicked(); // 取消按钮函数

头文件最重要的就是slots关键字

需要在slots关键字下定义处理函数

类函数文件widget.cpp

// 生成的槽函数
void Widget::on_commitButton_clicked()
{
    //获取lineedit数据
    //用ui这个类去获取文本框(cmdLineEdit)中的值 值的类型是(QString)
    QString program = ui->cmdLineEdit->text();

    // 创建process对象
    QProcess *myProcess = new QProcess(this);
    myProcess->start(program); // program是要依据文本框的内容所改变的
}

可以使用ui右键创建槽函数,也可以自己写

需要先引入process头文件 后创建process对象

再使用process中start方法选中内容

这里的program需要在process对象之前创建,获取文本框的内容

text()返回的数据类型 是QString 与 STL中string类似

用宏来写信号

 connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));

信号需要四个参数

****链接信号与槽 谁发出信号 发出什么信号 谁处理信号 怎么处理 ****

这里第一种方法使用宏来编写

1.文本框发出信号

2.signal(文本框(QLineEdit)发出的信号类型需要在文档中查询到信号名为(returnPressed))

3.this指向当前构造函数处理

4.slot是头文件中处理槽函数必须使用的关键字(处理方式为调用已写好的点击事件)

用取地址来写信号

connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);

用取地址(&)的方式调用 按钮的内置函数

用取地址的方法调用则不用再加()

处理简单的信息且不想调用函数可以使用弹窗


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

首先需要引入QMessage头文件,随后在调用其中的information函数

调用QMessageBox类中的方法(弹窗基于哪个类上面,标题名字,提示文字)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值