QT的概念、基本操作和常见面试题

QT的概念、基本操作和常见面试题

概念

QT编译过程

基本操作

信号与槽

信号槽指的是信号函数和槽函数,这是Qt在C++的基础上新增的特性,可以非常容易地实现Qt对象之间的通信。

实际上信号槽就是一种代码上的“约定”,在代码编写时指定某种前提条件和达到条件需要执行的代码,在代码运行中如果触发的前提条件就执行预设的代码,如果没有触发前提条件就不执行预设的代码。

使用信号槽需要有两个先决条件:

● 通信的对象必须是继承自QObject类,QObject类是Qt所有类型的基类。

● 类中要有Q_OBJECT宏

信号函数与槽函数的使用,需要建立连接,连接函数如下所示。

QObject::connect(const QObject * sender, const char * signal, const QObject * receiver, const char * method)[static]
/*
参数1:发射者,是前提条件中名词对应的对象。
参数2:信号函数,是前提条件中动词对应的函数,此函数属于发射者所有,信号函数通常使用过去时。信号函数需要使用SIGNAL()包裹。
参数3:接收者,是达到条件后执行代码的主体,也是名词对应的对象。
参数4:槽函数,是达到条件后执行动作对应动词函数,此函数属于接收者所有,槽函数通常使用现在时。槽函数需要使用SLOT()包裹。
*/

信号与槽的连接分为三类:
image

自带信号

分析:发射者——按钮对象

信号函数——clicked函数

接收者——窗口对象

槽函数——close函数
【例子】点击按钮,关闭窗口。

自带信号→自定义槽

实际开发过程中,触发的代码功能繁多,Qt源代码不可能囊括所有的情况,因此槽函数可以自定义,这是使用的最多的是一种方式。

槽函数本质是一种特殊的成员函数。

【例子】点击按钮,向右且向下移动窗口,并输出当前窗口的位置坐标。

自定义信号

定义信号主要用于后续一些相对复杂的特殊情况,

【例子】点击按钮,关闭窗口。

定时器

QObject

TimeId = startTimer();
/*
间隔时间,事件函数,返回TimeId
*/
killTimer();
/*
TimeId
*/

QTimer

QTimer();

start、stop和singleShot(可单次)


文件操作

QMainwindow下可以对文件操作

常见面试题

posted @ 2023-08-20 14:26  我好想睡觉啊  阅读(86)  评论(0编辑  收藏  举报