Qt 基础概念
Qt#
Qt本并不是一种编程语言,它实质上是一个跨平台的C++开发类库,是用标准C++编写的类库,它为开发GUI应用程序和非GUI应用程序提供了各种类。
窗口类#
Qt中有多种窗口类可以选择,例如:
-
QMainWindow: 主窗口类,具有菜单栏、工具栏和状态栏,类似一般程序的主窗口。(常用)
-
QWidget: 它是所有具有可视化界面类的基类,各种界面组件都支持。
-
QDialog: 对话框类,建立基于对话框的界面。
信号与槽#
“信号” 就是通过UI界面或其他方式让某一个组件产生的一个事件。Qt中基本所有控件的信号函数都有了,用户只需要根据要求选择对应的信号函数即可。
“槽” 就是用来处理某一个组件产生的事件。Qt绝大部分控件的槽函数原型都可以通过UI界面 go to slot...
选择对应的槽函数,一些不可视的控件则需要用户自定义槽函数,并在初始化UI时,绑定信号与槽。
这里类比以下LabWindows CVI 中的 callback函数
int CVICALLBACK CBC_BTN_ACCIDENT (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch(event)
{
case EVENT_COMMIT:
break;
case EVENT_LEFT_CLICK:
break;
case EVENT_RIGHT_CLICK:
break;
default:
break;
}
return 0;
}
💡 在LabWindows CVI中通过组件的callback的switch() case语句去判断是否哪一个事件到来,而Qt中则是根据组件的不同的信号创建不同的槽函数。
信号和槽要进行关联,使控件的信号函数和槽函数绑定。
基本格式:QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
关于信号与槽有一些规则:
-
一个信号可以连接多个槽
-
多个信号可以连接同一个槽
-
一个信号可以连接另外一个信号
-
信号与槽的参数个数和类型需要一致
-
在使用信号与槽的类中,必须在类的定义中加入宏
Q_OBJECT
-
当一个信号被发射时,与其关联的槽函数通常被立即执行。只有当信号关联的所有槽函数执行完毕后,才会执行发射信号处后面的代码。
一般可以直接UI界面 go to slot ...
选择某一个信号,直接添加槽函数原型(系统自动命名),例如 控件txtEdit
有些操作Action可以直接通过UI界面直接绑定信号与槽函数,例如:
Help文档#
由于QT的组件很多,不能记住所有的组件属性、组件信号、组件槽、组件公有成员函数等。我们应该记住常用组件的类名称,通过帮助文档去查询相关的操作。
QT将Help文档整合在主界面了,用户在代码新建一个类实例后,将鼠标悬停至类名上按下 F1
即可唤出对应的帮助文档。再按下 F1
即可全屏显示帮助文档,按下 Esc
即可返回。
帮助文档的格式:Qt版本-->Qt模块-->C++类-->组件
对于不熟悉的内容可以添加书签(bookmark),之后可以直接通过书签快速跳转至页面。
作者:caojun97
出处:https://www.cnblogs.com/caojun97/p/17805758.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律