QT学习笔记

QT信号与槽的连接

  1. 在ui界面中转到槽,直接编写内容
  2. 在构造函数中使用connect函数
    //连接信号与槽 谁发信号,发什么信号(地址),谁处理信号,怎么处理(函数)
    注意使用连接函数时,槽函数需要自行在头文件声明,一般声明为私有
    例如
    private slots:
        void on_commit_clicked();
        void on_cancel_clicked();
    connect (ui->commit,&QPushButton::clicked,this,&Widget::on_commit_clicked); 
    commit按钮发出信号,信号为点击,widget处理(this),使用on_commit_clicked处理
    
    connect (ui->lineEdit,SIGNAL(returnPressed()),this,SLOT(on_commit_clicked())); 
    lineEdit按钮发出信号,信号为回车,widget处理(this),使用on_commit_clicked处理
    returnPressed是Qlineedit类中的函数,是一个信号,按下回车时发出
    SIGNAL将函数标记为信号   SLOT,将单个函数标记为插槽。  
    
    
  3.  直接连接,不用单独槽函数,仍然写在构造函数中:该函数表示为创建小窗口,需要QMessageBox头文件
    connect (ui->browse,&QPushButton::clicked,[this]()
    {
            //this(父类),对话框名,对话框内容
             QMessageBox::information(this,"信息","点击浏览");
    
        });
  4. 打开exe代码
    void Widget::on_commit_clicked()
    {
        //需要头文件QProgress
        QString progress = ui->lineEdit->text();//从对话框获取文本
        QProcess  *myprocess=new QProcess(this);//创建对象
        myprocess->start(progress);//执行打开文本对应的exe
    
    }

    实战:简易计算器

  5. 包含头文件QScriptEngine,用于字符串计算,私有成员QString expression保存字符串表达式,
    等于号的槽函数如下
          QScriptEngine myEngine;//创建类
          QScriptValue three = myEngine.evaluate(expression);//计算结果,expression中保存的计算表达式字符串
    
          ui->mylineEdit->setText(QString::number(three.toInt32()));//在lineedit输出,注意需要将QScriptValue 类型转化为int,再将int转化为字符串

    其余按键槽函数

    //普通按键
    void Widget::on_oneButton_clicked()
    {
        expression +="1";
        ui->mylineEdit->setText(expression);
    }
    //退格
    
    void Widget::on_backButton_8_clicked()
    {
        expression.chop(1);//chop(n)删除字符串末尾n个字符
        ui->mylineEdit->setText(expression);
    }
    
    //清空
    void Widget::on_clearButton_11_clicked()
    {
        expression.clear();//将表达式清空
        ui->mylineEdit->clear();//将文本框清空
    
    }
    
    

    设置计算器格式

    //在构造函数中进行修改
    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
        this->setWindowTitle("计算器");//设置窗口名称
        QFont f("仿宋",10);//字体及大小
        ui->mylineEdit->setFont(f);
        //按钮上图片
        QIcon con("C:\\Users\\Billcream\\Desktop\\taihang\\calculator\\1719198648327.jpg");
        ui->backButton_8->setIcon(con);
        //改变按钮背景色
        ui->equalButton_20->setStyleSheet("background: yellow");
    }

    结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值