1. 信号函数调用的时候仅仅会发送出信号,所以不需要执行 ,所以对于信号声明就行,但是不需要进行定义。

2. 只有槽函数可以声明为public,private,或者是protected的,而信号不行。可以将slot仅仅看成是一个与信号相关联的成员函数。

3. Qt的元对象指的是QMetaObject的实例,Qt中的元对象系统是用来处理对象间通讯的信号/槽机制、运行时的类型信息和 动态属性系统。虽然你使用QObject作为一个基类而不使用Q_OBJECT宏和元对象代码是可以的, 但是如果Q_OBJECT宏没有被使用,那么这里的信号和槽以及其它特征描述都不会被 提供。根据元对象系统的观点,一个没有元代码的QObject的子类和它含有元对象代 码的最近的祖先相同。举例来说就是,className()将不会返回你的类的实际名称, 返回的是它的这个祖先的名称。我们强烈建议QObject 的所有子类使用Q_OBJECT宏,而不管它们是否实际使用了信号、槽和属性。

4. 注意是QObject::connect,

5. 在连接信号与槽的时候不应该将具体的参数名写出来,只写上参数类型就行了。如果写了参数名的话程序会出错。

6. QMake处理了元对象的生成,并且将他们包含在了最终的程序之中。

7. moc寻找包含Q_OBJECT的类并且为这些类生成元对象,这些元对象随后会被链接到最终的程序之中。

8. 不要忘记了对于继承与QObeject的对象应该在类中加上Q_OBJECT声明。

9. 对于所有的图形化的Qt应用,必须有并且只能由一个application的实例。

10. 在Qt当中list之类的容器只要不进行修改就是隐式的共享的。所以将这些容器类作为const参数或者返回对性能来说是没有什么影响的。

11. 在Qt的for循环中,最好使用++前缀形式而不是后缀形式。

12. List中插入或者删除元素的时候正在使用的迭代器会变得无效,所以使用时应该注意。

13. 使用const型迭代器会让代码的开销更小以及更加安全。

14. QStringList类的一些典型的方法:1 list.join(“,”),在list内容之前插入逗号 2 replaceInString(“a”, “oo”),将成员中的a字符都换成 oo 字符。3 同样的与join对应的有着list.split(“,”)即按照着分隔符将一个整的字符串分成好几个存放在list中。

15. 怎样显示一个QMap中的对应的键和值:

foreach( QString key, map.keys() )

qDebug() << key << " = " << map[key];

16. 对于Map最好使用value而不是[]来取得一个键的值。

17. Qhash中的哈希表只要求提供==运算符,唯一的要求就是对于同样的元素应该提供相同的哈希值。

18. 继承于QHash的类必须至少应该定义一个operator==以及一个qHash成员函数。

19. 注意所有的Qt应用程序都是事件驱动的。

20. QApplication会进行事件的分发,这样当QPushButton收到这个事件的时候就会emit一个信号让其他的槽函数得以接受。

21. App.exec中的app是应用程序模版,其可以当作是所有Qt应用的起点。

22. 在Qt中使用布局的好处就是其可以让你随意的拖拽布局以及更换字体等等。

23. Qt可以在ui上面对不同的部件设置tab键查找顺序,在工具栏上面可以进行设置。

24. 注意,如果设计师文件叫做foo.ui,那么对应的c++文件就叫做ui_foo.h,设计的时候如果dialog的名字叫做ListDialog,那么最终结果的class就是Ui:ListDialog,放在Ui的明明空间中是为了防止与其他的非Ui的类文件名起冲突。

25. Qt的ui文件生成的类并不会继承于QDialog,其甚至连QObject都不是。所以应该自己定义相应的类。

26. 在qt程序的创建过程中可以使用单继承然后再将ui文件包含在里面,这样的程序耦合度更加低,因而十分方便修改。

27. GroupBox里面的部件当Group在移动时会和其一起进行移动。

28. 所有的部件在运行时都会得到一个大小提示,这些东西规定了其最大大小以及最小大小等等的信息,以及最大以及最小的高度等等的信息。

29. 用代码来编辑ui的时候,可以将要列上的东西先全部都列上,然后在用layout一步一步的添加即可。

30. 用代码来添加spacer可以使用addStretch()。

31. 注意,用代码的方法来添加一个addWidget布局的时候,事实上是将不同的部件分配了不同鸽子数目。示例代码为:

1 QGridLayout layout(&widget);
2 layout.addWidget(new QPushButton(“foo”), 0, 0, 1, 2);
3 layout.addWidget(new QPushButton(“Bar”), 1, 0);
4 layout.addWidget(new QPushButton(“baz”), 1, 1);

32. 如果想要让一个pushButton可以在按下与释放两种状态之间相互切换,那么应该将pushButton的checkable属性设置成true。

33. 注意以后发现没有界面自动退出的问题的时候,记得去检查所有的组建是否已经用new来声明过了,自动退出往往都是内存方面的问题。

34. 注意当那个布局声明的所处的位置的时候应该要使用QHBoxLayout(this)来声明,注意这个this是很重要的。

35. 如果出现有着no such slot的错误,那么可以去尝试下看看有没有如下几种错误:

1、看类声明中有没有Q_OBJECT

2、看slot函数有没有声明

3、查看slot有没有出现拼写错误

36. Qt当出现undefined reference to vtable for sth的时候应该尝试将debug以及release文件夹删掉之后应该就可以完成了。

37. Qt出现QT:connect was not declared in this scope 的原因是因为可能在main函数中使用connect时候没有加上QObject,在main函数当中是必须加上的,但是在其他函数当中就没有必要加上,因为其他的类可以直接使用属于自己的connect函数。

38. 注意,将文本设置成”E&xit”,这样键盘的快捷键为Alt+X。

39. QButtonGroup中放置radiobutton的时候防放置一组,只能有一个是选中的状态。

40. 如过想要禁用一个groupbox中的某些选项,可以使用groupbox的checkable属性。

41. QListWidget中含有这addItem(const QString &)以及addItem(const QStringList &)两种函数,以及currentTextChanged(const QString &)和currentItemChanged(QListWidgetItem * , QListWidgetItem * )两种信号。

42. 注意以后当出现QDialog is private 的时候, 应该看看是否将应该声明为指针的对象声明成了指针对象。

43. 在Qt的getSaveFileName这个函数中,选择文件类型的时候如果想要选择全部的类型那么使用*.*就可以完成。

44. QMessageBox::information, QMessageBox::warning, QMessageBox::critical的参数以及窗口几乎都是相同的,只不过在系统中他们的提示声音以及提示声音是不相同的。

45. 将mainwindow的属性设置成Qt::WA_DeleteOnClose可以有效的防止内存泄漏。

46. 在更改textEdit的文本信息之后被modified的应该是TextEdit的document()部分,这里的textdocument才是管理文本的内容以及格式属性的,而textEdit仅仅只是一个编辑器加上视窗,所以不可能是它发生了改变而应该是document()。

47. QAction类别,当一个QAction被使用的时候都会触发一个triggered()信号或者是toggled(bool)的信号。

48. qApp是一个全局指针,用他可以调用一些有用的东西,记得应该先包含QApplication。

49. 由于一个单窗口文本文件的关闭十分麻烦,有很多种不同的情况,例如关闭主窗口以及计算机关闭等等的情况,所以应该试图的去使用Qt提供的QCloseEvent去写出关闭事件。

50. 对于closeevent的accept(),其会使窗口关闭。而ignore()则会使忽略消息窗口不关闭。

转载于:https://www.cnblogs.com/-wang-cheng/p/4874264.html

Foundations of Qt Development 学习笔记 Part1 Tips1-50相关推荐

  1. QT+opencv学习笔记(5)——霍夫直线检测、圆检测及椭圆检测

    开发环境为:win10+QT5.8+opencv3.2 Hough变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛.最基本的Hough变换是从黑白图像中检测直线,还可以经过改进检测圆.椭 ...

  2. 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】

    [QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...

  3. 游戏黑客圣经GHB1学习笔记 part1(1-5)

    游戏黑客圣经(Game Hacking Bible1) 我在这里记录我所有课程的学习笔记,包括一些小技巧以及源码,俗话说好记性不如烂笔头,写在这里,用于温故而知新. 前言 学习游戏黑客的必备条件 智力 ...

  4. 计算机网络学习笔记Part1

    计算机网络学习笔记Part1 1. 概念 计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统. 2.功能 1.数据通信.2. ...

  5. 【QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)】

    [QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)] 1.说明 2.实验环境 3.参照连接 4.自己的学习与理解 5.学习与实践代码 (1)移动图片测试实验 (1)继续之前的工 ...

  6. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  7. 尚医通项目学习笔记Part1

    尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...

  8. 《统计学:从数据到结论》学习笔记(part1)--统计学是收集、分析、展示和解释数据的科学

    学习笔记 学习书籍:<统计学:从数据到结论>-吴喜之: 参考书目:<统计学>-贾俊平 一些统计学的基本概念 啥是统计学? 按照不列颠百科全书关于统计学的定义,统计学是" ...

  9. Qt creator学习笔记(一)认识Qt

    前言 我这里使用的系统是Windows11,程序组是Qt 5.12.9,用于程序开发的IDE是Qt Creator 4.12.2 (Community). 1.Qt界面语言设置 tools(工具)-& ...

最新文章

  1. ubuntu查看python版本-linux查看python安装路径,版本号
  2. mysql select 1
  3. ARM64的启动过程之(一):内核第一个脚印
  4. Android开发中方法数超过65535的简单解决方法
  5. 【youcans 的 OpenCV 例程200篇】135. 形态学重建之粒度测定
  6. 信息学奥赛一本通(1224:最大子矩阵)
  7. SqlServer中union 和 union all的区别
  8. HTTP协议【详解】——经典面试题
  9. 190308每日一句
  10. 音频处理之语音加速播放
  11. Apache Shiro官方构架文档中文翻译
  12. PHP+MySQL制作简单动态网站(附详细注释+源码)
  13. 《统计学》第八版贾俊平第二章课后习题及答案总结
  14. 这是一个价值一个亿的项目思维导图
  15. 情感失忆的伤感空间日志_如果说回忆是甜蜜的
  16. 多模态AI浪潮来袭,或造福数亿视障人群
  17. 韦神!北大数学系韦东奕爆红!拒绝哈佛offer,留任北大!
  18. 【应届生笔试资料分享二】中国农业银行相关介绍汇总
  19. 医疗软件还能怎么做,才能更进一步。
  20. DDR SDRAM原理介绍

热门文章

  1. CDays–2 完成核心功能 CMD模块 Python基础教程 cmd cli
  2. div+css背景渐变色代码示例
  3. Android 启动模式简介
  4. 2659: [Beijing wc2012]算不出的算式
  5. .INFO域名总量跌破700万,8月第三周净减51,477个
  6. Net设计模式之简单工厂模式(Simple Factory Pattern)
  7. jquery如何调用后台的方法
  8. 灵活运用ISA的链接转换功能:ISA2006系列之十三
  9. 女生学编程有哪些好处呢?
  10. 海南省长沈晓明:海南自贸区先导性项目取得阶段性进展