Qt学习笔记1 Qt工程、UI界面,信号与槽
Qt工程介绍
本人使用的Qt版本是Qt5.10,接下来会介绍Qt创建的工程文件。工程创建后,如下图所示:
1、.pro工程文件分析:
2、目录分析:
UI界面介绍
信号与槽
信号
信号是由于用户对窗口或者控件进行了某些操作,导致窗口或者窗口类会发生某个信号,以此针对用户使用某个控件做出反应。
信号的本质——事件,比如:
1、按钮单击,双击
2、窗口刷新
3、鼠标移动、按下、释放。
在Qt中使用者触发一个事件,Qt框架就能接收到某个与之相对应的信号。
槽
槽就是对信号响应的函数,它可以被定义在类的任何部分,可以具有任何参数,可以被重载,被调用。
单击按钮控件
对应的槽函数,每当点击该按钮,该函数就会运行
void Widget::on_LoadButton_clicked()//自动创建的槽函数
{
qDebug("hello world");
}
槽函数的生成
手动生成——手动生成槽函数需要自己编写接口函数,不过好在有封装好的函数,知道怎么调用就行。
其次,手动编写的槽函数需要调用connect函数,该函数是将信号和槽进行连接。
如上图所示,红框框出来的部分就是需要编写的部分。
ui(new Ui::Widget)
{
ui->setupUi(this);// setupUi(this)是由.ui文件生成的类的构造函数,作用是对界面进行初始化,
connect(ui->RegisterButton,SIGNAL(clicked(bool)),this,SLOT(olgo_clicked_slots()));//连接ui界面,将信号和槽进行连接
}
connect函数的一般形式如下:
connect(sender,signal,receiver,slot);
其中:
- sender ——发出信号的对象,当使用按钮时,对象即是QPushButton按钮
- signal——发出的信号,使用按钮时,信号可能为pressed(按钮按下)、released(按钮抬起)。
- receiver——接收信号的对象,比如当前窗口
- slot——接收到信号之后,调用的函数,即槽函数
如上图所示:
第一行的 ui->setupUi(this) 是界面和程序之间沟通的桥梁,对界面进行初始化。
第二行的 connect 是QT中的连接函数,将信号发送者sender对象中的信号signal与接受者receiver中的member槽函数联系起来。 上面代码编写的代码便是将按钮所发出的信号和槽函数进行连接。
第一个参数——发送信号的对象。
第二个参数——发出的信号,信号为clicked(按钮按下又抬起)
第三个参数——接收信号的对象,默认为this,即为当前窗口
第四个餐宿——即为接收信号后执行的槽函数,如下所示
void Widget::olgo_clicked_slots()//注销按键的槽函数(手动)
{
qDebug("hello QT");
}
自动生成——该槽函数可通过右击按钮控件,选择转为槽选项自动生成槽函数。