Loading

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 国际」许可协议进行许可。

posted @   eiSouthBoy  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu