QT基础(二)之控件、信号和槽

QT基础(二)之控件、信号和槽

一、控件

1.1 常用控件介绍

Lable(标签):常用于放置文本标签,也可放置图片、GIF图片等;

Text Edit(多行文本编辑框):可以输入显示多行文本和图片,可以换行;

Line Edit(单行文本编辑框):单行输入文本编辑框,输入时不会换行,常用于账号、密码等单行输入场景;

Push Button(下压按钮):单击按下,可以触发单击信号;

1.2 给控件改名

当我们在代码中需要用到控件对象时,必须知道控件对象的名字。但是我们对界面进行布局时,生成的都是默认名称,难以区分控件的功能。必须根据控件的类型和功能作用对其进行重新命名。修改方法如下:

image-20200730170640978

二、信号和槽

2.1 什么是信号和槽?

​ QT中控件间最重要的通信方式就是信号和槽。首先解释信号,信号是由控件的事件发出的,比如按钮被点击时会发出click单击的信号。槽就是一个函数,也叫槽函数。如果把信号比作水流,槽就是引水流用的槽。将信号(水流)引到槽后,我们只需要到槽中就可以找到信号(水流)。将信号引到槽的过程叫关联

​ 关联信号到槽函数后,当控件的某一事件触发发出相应信号之后,程序就会跳转到槽函数中执行。非常类似于中断的思想。如关联按钮单击信号和槽函数后,按钮被按下发出单击信号后,就会跳转到其相应的槽函数。

2.2 如何关联信号和槽?

  • 自动关联

    在UI布局界面,选中需要关联信号的控件,右键选择转到槽,在弹出的窗口选择需要关联的信号。选择完成后会自动生成一个槽函数,并且在相应的类中进行声明,并转到函数的定义处。

    下面选择一个按钮进行自动关联操作。

    1.选择按钮pushButton控件,转到槽

image-20200802100829262

2.选择需要关联的信号,这里选择单击信号click()

image-20200802101222774

3.转到槽函数,并在类中自动进行声明

image-20200802101422773 image-20200802102252965

在槽函数中打印一些调试信息:

image-20200802102426529

运行,测试:

image-20200802102556908
  • 手动关联

手动关联需要使用connect()函数,函数参数如下:

image-20200802103322346

简化一下:

connect(A,SIGNAL(B),C,SLOT(D));

用法:将控件对象A的信号B,关联到对象C的槽函数D。示例:

//将clearBt按钮的clicked()单击信号关联到当前widget界面对象的槽函数clearBt_clicked()
connect(ui->clearBt,SIGNAL(clicked()),this,SLOT(clearBt_clicked()));

这里需要注意,手动关联的槽函数形式不要与自动关联的一致,不要以on开头,否则当信号触发时会执行两次槽函数

下面以clearBt为例,进行手动关联。

1.使用connect函数关联信号和槽函数,实现槽函数
image-20200802105625931

2.在类中对槽函数进行声明
image-20200802105908981

运行,测试:
image-20200802110018076

  • 关联方式使用场合

    • 对于一些简单、可被操作触发的信号如按键的点击信号,使用自动关联会非常快捷简单;

    • 对于一些比较抽象或者难以操作的信号如串口的数据接收等信号,一般使用手动关联;

    • 如果使用手动关联,需要注意槽函数的命名格式,最好不要以on_xx开头,否则容易触发两次。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值