Qt学习心得体会

article/2025/10/25 1:04:16

        Qt是一种跨平台C++图形界面程序开发框架,在社会中各种行业都有着举足轻重的地位。

Qt为了实现对象与对象之间的通信,提出了信号与槽的概念。当一个对象发生改变会发送一个信号通知另一个对象执行一个函数,这个函数称为槽,信号只需要声明,不用定义,发送信号用emit关键字。当与槽函数关联的信号被发送时,槽函数就会调用。

        信号与槽的连接方式有手动连接与自动连接。

        

手动连接的参数依次为:发送信号的对象,发送的信号,接收信号的对象,接收方法,连接类型。

        连接时信号的参数可以比槽多,反之则不可以,信号与槽的关系可以一对一,一对多,多对一,并且信号可以与信号连接。连接类型有四种:

1.直连方式:DirectConnection

        槽函数会在信号发送时直接被调用,槽函数运行于信号发送者所在线程。

2.排队方式:QueuedConnection

        槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。

3.自动方式:AutoConnection

        默认的方式,如果接受者和发送者在同一个线程,则自动使用Qt::DirectConnection类型,若不在同一个线程,则自动使用Qt::QueuedConnection类型。

4.阻塞排队方式:BlockingQueuedConnection

        槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在的线程会阻塞,直到槽函数运行完。接受者与发送者绝不能在一个线程,否则程序会死锁。

5.唯一连接方式:UniquConnection

        这个flag可以通过按位或与以上四个结合在一起使用,设置后,当某个信号与槽连接时,再进行重复的连接就会失败。

        Qt内存管理,即在创建类的对象时,为对象指定父对象指针。在父对象于某一时刻被销毁释放时,父对象会先遍历其所有子对象,并逐一将其销毁。

 


http://chatgpt.dhexx.cn/article/vkgtRGVd.shtml

相关文章

QT 学习笔记(二)

文章目录 一、标准信号和槽1. 准备工作1.1 main.c1.2 widget.cpp 2. 添加按钮2.1 widget.h2.2 widget.cpp2.3 运行结果 3. 信号和槽(重点)3.1 信号3.2 自定义槽3.3 widget.h3.4 widget.cpp3.5 运行结果 二、两个独立窗口1. 添加新窗口2. 自定义信号3. 窗…

Qt学习 - 总

Qt学习 学习中的错误常用快捷键杂项布局信号与槽数据库相关QSS选择器 {property:value}Qt样式表设置函数 setStyleSheet()QSS文本属性 事件QMouseEvent:鼠标事件键盘事件QWheelEvent:滚轮事件QCloseEvent:关闭事件QTimerEvent:超时…

Qt日常学习

2022/07/28 使用Visual Studio2019 搭配 Qt5.14,可视化Qt界面使用QtDesigner。 若只使用代码来做界面太麻烦,效率低;只使用可视化界面进行拖拽效率高但无法实现全部功能。使用代码可视化结合的方式能够实现绝大部分功能。 练习1&#xff1…

QT入门学习(一):什么是QT

QT 是什么? QT是一个跨平台C图形用户界面应用程序开发框架。它不仅可以开发GUI程序,也可以开发非GUI程序。我们通常使用QT开发GUI程序。 它可以开发Windows、Linux、Mac平台的应用程序。也可以开发移动端应用程序以及嵌入式程序。 QT 模块 QT 有模块…

一位大佬对于 Qt 学习的最全总结(三万字干货)

击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号” 干货福利,第一时间送达! 分享一位大佬 Github 上关于 Qt 学习的总结。作者无私分享了一百多个自定义控件以及几本 Qt 的书籍(C Qt),特此引用这个大…

QT学习笔记(一)——QT基础

QT学习笔记(一)——QT基础 文章目录 QT学习笔记(一)——QT基础前言一、QT是什么?二、基础内容1.pro文件规则及含义2. Widget头文件3. QT坐标系的定义4. QApplication应用程序类5.按钮:QPushButton6. 信号和…

Qt初学者的一些学习方法、参考资料

1,简介 最近有一些朋友加我,询问Qt入门学习的方法、资料 我基本都一一作答,根据情况给出了一些参考意见 感觉很多新手开始学习时很迷茫,不知道学习哪些方面、看什么资料 这里干脆写一篇文章,把自己的学习过程给大家介…

Qt学习之C++基础

前言 用了大概2个月的时间,学了Qt,然后开发一个小项目,总的来说,在主机GUI程序中,相比Java的Swing和JavaFX,个人感觉Qt的界面设计更加简便一点,灵活性更高一些,然后下边就主要简述一…

Qt学习之Qt基础入门(中)

1. 前言 上一篇博客,总结了Qt的一些基础用法,这篇博客继续跟视频学习Qt的常用方法 Qt入门系列: Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习之Qt基础入门(下) 本文原创,创作不易&…

Qt学习之Qt基础入门(上)

1. 前言 上一篇博客,简单的介绍了一下C的面向对象编程,这篇博客就主要是用来入门Qt,废话不多说,开干! Qt入门系列: Qt学习之C基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) Qt学习…

qt基础入门教程

1、t的介绍、优点、成功案例 5.8.0 Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。爸是完全面向对象的,很容易扩展,并且允许真正的组件编程。 推荐安装 wps linux 桌面环境 虚拟机软件 屏幕共…

Qt入门教程100篇(已完结)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「CSDN学院」:传送门 😈「本文的内容」:Qt基础教程 😈「动动你的小手」:点赞👍收藏⭐️评论&…

QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

目录 一、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二、创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2.1 main函数中 2.2.2 类头文件 2.3 .pro文件 2.4 命名规范 2.5 QtCreator常用快捷键 三、Qt按钮小程序 …

QT入门到实战学习笔记

学习笔记 最新QT从入门到实战完整版|传智教育_哔哩哔哩_bilibili 目录 1.创建一个QT文件 1.1命名规范 1.2快捷键 2QPushButton创建 2.1防止汉语乱码 2.2对象树 2.3Qt窗口坐标体系 3信号和槽机制 3.1自定义信号和槽 3.1.1自定义信号: 3.1.2自定义槽&#…

pdflatex和xelatex的使用差别和建议

关于pdflatex和xelatex的区别的一些注意点 pdflatex 和xelatex分别是什么我遇到的一些问题 pdflatex 和xelatex分别是什么 pdflatex 和xelatex是latex编译中最常用的编译方式,而且效果一般都是比较好的。 PDFLaTeX命令:PDFTeX程序中的命令,用…

关于MAC解决jupyter中出现nbconvert failed/ xelatex not found on path报错

前言 开开心心的花了半个小时做完了2303的期中测试,结果在导出为pdf的时候提示我500错误,说明为nbconvert failed: xelatex not found on path,我当时就蒙了昂,不过还好考试时间是三个小时,还能浪浪,但是我…

【LaTex使用总结】LaTex,pdflatex,xelatex,xetex等的区别和关系

问题是这样产生的,从本科毕设开始接触LaTex起,使用现成的模板进行编译生成操作,一步步按指示操作也从未深究。 后来使用word较多,LaTex经常是简单模板,也渐渐对LaTex的细节不再感兴趣,近期又开始用LaTex撰写…

pyplot 使用 latex 报错:xelatex not found……

错误提示 发生异常: RuntimeError xelatex not found. Install it or change rcParams[pgf.texsystem] to an available TeX implementation. 原始参数: plt.rcParams.update({"pgf.texsystem": "xelatex","text.usetex": True,# u…

Winedt为什么可以用pdfLaTex编译中文(pdfLaTex和XeLaTex的使用)

文章目录 Winedt为什么可以用pdfLaTex编译中文查看Winedt的默认编译器: 1.XeLaTex和pdfLaTex的关系2.Winedt中使用pdfLaTex编译中文的tex3.原因4.验证 Winedt为什么可以用pdfLaTex编译中文 前言:如果你只是想用Winedt实现LaTex中英混排那么可以直接选择…

recipe terminated with fatal error: spawn xelatex enoent.

vscode配置latex的小问题 问题产生的原因是环境变量没有配置好。所以只需要把环境变量配置好就可以了。 1、 打开textlive安装的路径(…\textlive\2022\bin\win32),比如我的就是C:\texlive\2022\bin\win32 2、编辑环境变量: 编…