admin 管理员组文章数量: 887032
2024年1月14日发(作者:reacthooks封装)
Qt Creator课程知识点总结
(熟悉并理解,切莫死记硬背)
1. Qt软件的特色:只需一次开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
2. Qt安装路径及项目保存路径的注意事项:路径中不能出现中文。
3. 在Qt Creator中进行编程时,若想了解一个函数的语法规则,可以按F1键进入帮助界面。
4. Qt 4.8.5包含了几个很有用的工具,它们分别是Qt助手(Qt Assistant)、Qt设计师(Qt Designer)、Qt示例与演示程序(Qt Examples and Demos)和Qt语言家(Qt Linguist)。简单了解它们各自的作用。
5. 新建Qt项目的三种方法:①菜单→文件→新建文件或项目;②按下Ctrl+N快捷键;③欢迎模式→开发→Create Project。
6. 编辑界面中字体大小调节的方法:①放大Ctrl +“+”;②缩小Ctrl + “-”;③还原Ctrl+0;④Ctrl+鼠标滚轮。
项目中各个文件的作用
8. 若希望程序能够在其它计算机上运行,就需要对程序进行发布。发布一个程序时,需要在目标选择器中将构建目标设置为Release。
9. Qt Creator只是一个集成开发环境,用于完成基于Qt应用程序中相关文件的自动构建和连接,故此即使平台中只安装了Qt而没有安装Qt Creator,照样可以进行基于Qt的应用程序开发工作。
10. QWidget继承自QObject类和QPaintDevice类。
11. 设置部件对象之间父子关系的方式,如设置label为widget的子对象:
QWidget * widget=new QWidget();
QLabel * label=new QLabel(widget);
12. QWidget类中函数resize()和move()的意义。
13. 设置对话框为模态的三种方式,了解其用法和区别。
①使用exec()函数
②使用setModal()函数
③使用setWindowModality()函数
14. 使用信号与槽机制手动关联时connect()函数的用法。
15. 使用信号与槽机制自动关联时,槽函数的命名规则。
16. 熟悉Qt提供的标准对话框的作用。
17. 文件对话框中几个静态函数的区别
getOpenFileName():选择单个文件
getOpenFileNames():选择多个文件
getSaveFileName():保存单个文件
getExistingDirectory():获取文件夹
18. 熟悉QFrame类的常用子类的基本作用(教材中每一种类下面的第一行就是其基本作用)。
QLabel:标签
QLCDNumber:液晶数字
QSplitter:分裂器
QStackedWidget:部件栈
QToolBox:工具组
QAbstractScrollArea:滚动区域
19. 了解QFrame中常用边框形状和边框阴影的显示效果。
边框形状(shape):QFrame::Box、QFrame::Panel、QFrame::HLine、QFrame::VLine
边框阴影(shadow):QFrame::Plain、QFrame::Raised、QFrame::Sunken
20. 熟悉在QLabel对象中显示不同元素的函数
显示文本setText():setText(“text”)
显示数字setNum():setNum(1.0)
显示图片setPixmap():setPixmap(QPixmap(“../”))
显示动画setMovie():setMovie(movie)
21. 实现QAbsractButton类的几个子类的基本作用。
标准按钮:QPushButton
编组框:QGroupBox
单选按钮:QRadioButton,每组中只能选中一个。
复选按钮:QCheckBox,每组中可以选中多个。
工具按钮:QToolButton:用于对命令或选项进行快速访问,一般应用在工具栏中。
22. 按钮对象的isChecked()、isCheckable()、setCheckable()三个函数的区别。
23. QLineEdit的四种显示模式:
Normal,正常显示输入的信息。
NoEcho,不显示任何输入。
Password,以小黑点或星号显示输入字符。
PasswordEchoOnEdit,编辑时Normal,显示时Password。
24. QAbstractSpinBox的三个子类的基本作用
QDateTimeEdit(日期时间设定)
QSpinBox(整数设定)
QDoubleSpinBox(浮点数的设定)
25. QAbstractSlider类的三个子类的基本作用
QScrollBar用在QScrollArea类中来实现滚动区域;
QSlider是我们最常见的音量控制或多媒体播放进度等滑块;
QDial是一个刻度表盘。
26. Qt布局管理系统的作用:自动排列一个窗口中的部件,确保它们有效地使用空间。主要完成的任务包括:
定位子部件;
感知窗口默认大小;
感知窗口最小大小;
改变大小处理;
当内容改变时自动更新。
27. QLayout类的几个子类的基本作用
QBoxLayout(基本布局管理器)
QGridLayout(栅格布局管理器)
QFormLayout(表单布局管理器)
QStackedLayout(栈布局管理器)
28. 在代码中使用基本布局管理器的方法:
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(ui->fontComboBox);
layout->addWidget(ui->textEdit);
setLayout(layout);
29. 在代码中使用栅格布局管理器的方法:
QGridLayout *layout = new QGridLayout;
layout->addWidget(ui->fontComboBox,0,0,1,2);
layout->addWidget(ui->pushButton,0,2,1,1);
layout->addWidget(ui->textEdit,1,0,1,3);
setLayout(layout);
30. 分裂器QSplitter与QBoxLayout的区别
部件默认大小
布局管理器中的部件,不随着布局管理器变化而变化。
分裂器中的部件,随着分裂器的大小变化而变化。
可见性
布局管理器继承自QObject类,在应用程序中不可见。
分裂器继承自QFrame类,QFrame类又是继承自QWidget类,故分裂器是可见的,而且可以像QFrame一样设置边框。
31. 设置Tab键顺序的方法: setTabOrder(部件1,部件2)。
32. QMainWindow主窗口中包含的元素:
菜单栏(一个)、工具栏(可多个)、中心部件(一个)、Dock部件(可多个)、状态栏(一个)。
33. 状态栏三种信息的添加方式:
临时信息,如一般的提示信息。可以使用showMessage()函数来显示,出现在状态栏的最左边。
正常信息,如显示页数和行号。一般用addWidget()函数添加一个QLabel到状态栏上用于显示正常信息,它会生成到状态栏的最左边,可能会被临时消
息所掩盖。
永久信息,如显示版本号或者日期。使用addPermanentWidget()函数来添加一个如QLabel一样的可以显示信息的部件,它会生成在状态栏的最右端,不会被临时消息所掩盖。
34. 熟悉教材中第5.1.5节自定义菜单的设计方法,在知道需求的情况下,能够对功能进行分解并进行实现。
35. 了解使用文档光标QTextCursor在文本编辑器中添加表格、列表、图片函数的用法:
textEdit->textCursor().insertTable(2, 2, format);
textEdit->textCursor().insertList(format);
textEdit->textCursor().insertImage(format);
36. 了解事件处理的5种方法:
方法一:重新实现部件的事件处理函数。
如paintEvent()、mousePressEvent()等,这是最常用的方法,不过它只能用来处理特定部件的特定事件。
方法二:重新实现QApplication类的notify()函数。
“通告函数”(发送事件到接收者)提供了完全的控制,可以在事件过滤器得到事件之前就获得它们。但是,它一次只能处理一个事件。
方法三:向QApplication对象上安装事件过滤器。
因为一个程序只有一个QApplication对象,所以这样实现的功能与使用notify()函数是相同的,优点是可以同时处理多个事件。
方法四:重新实现QObject类的event()函数。
QObject类的event()函数可以在事件到达默认事件处理函数之前获得该事件。
方法五:在对象上安装事件过滤器。
使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。
37. 了解拖放事件类中的几个事件产生的时机。
dragEnterEvent()
dragMoveEvent()
dropEvent()
38. 了解事件的传递过程,
首先是事件过滤器;
然后是该部件的event()函数;
然后是该部件的事件处理函数。
最后是父部件的事件处理函数。
39. 了解鼠标事件类中几个事件的产生时机
mousePressEvent()
mouseReleaseEvent()
mouseDoubleClickEvent
mouseMoveEvent()
40. 鼠标事件中函数button()与buttons()的区别:
button()返回触发该事件的按键;
buttons()返回发生该事件时各按键的状态。
41. 了解事件过滤器使用方法
①注册widget->intstallEventFilter(this):widget为被监视对象,this为监视者,此时该代码应写到监视者类的构造函数中。
②重新实现eventFilter(object,event)函数:在该函数中描述当不同事件发生时所要采取的措施。
42. 信号和槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出的特征。
43. 信号声明的注意事项:
声明信号要使用signals关键字,并且不能使用public、private和protected等限定符。
信号只用声明,不需要也不能对它进行定义实现。
信号没有返回值,只能是void类型的。
只有QObject类及其子类才能使用信号和槽机制;
44. 元对象系统是基于以下三个条件的:
类:该类必须继承自QObject类;
宏:必须在类的声明区声明Q_OBJECT宏;
编译器:元对象编译器Meta-Object Compiler(moc)为QObject的子类实现元对象特性提供必要的代码。
45. 顺序容器有哪些?
QList,QLinkedList,QVector,QStack和QQueue。
这些容器中的数据都是一个接一个线性存储的,所以称为顺序容器。
46. 关联容器有哪些?
QMap,QMultiMap,QHash,QMultiHash和QSet。
这些容器存储的是<键,值>对,比如QMap
47. 熟悉QList的接口函数的作用:
插入操作insert();
替换操作replace();
移除操作removeAt();
移动操作move();
交换操作swap();
在表尾添加项目append();
在表头添加项目prepend();
移除第一个项目removeFirst();
移除最后一个项目removeLast();
从列表中移除一项并获取这个项目takeAt(),还有相应的takeFirst()和takeLast();
获取一个项目的索引indexOf();
判断是否含有相应的项目contains();
获取一个项目出现的次数count()。
48. 熟悉QMap的接口函数的作用:
插入操作insert();
获取值value();
是否包含一个键contains();
删除一个键remove();
删除一个键并获取该键对应的值take();
清空操作clear();
插入一键多值insertMulti()。
49. Java风格迭代器指向项目之间;STL风格迭代器直接指向项目。
50. Java风格迭代器的函数:
hasNext()函数:检查在该迭代器后面是否还有项目。
next()函数:迭代器前进一个位置,并返回它所跳过的项目。
hasPrevious()函数:检查在迭代器的前面是否还有项目。
previous()函数:迭代器后退一个位置,并返回它所跳过的项目。
51. 正则表达式的组成元素:
字符表达式(expressions) :所要匹配的字符。
量词(quantifiers):要匹配表达式出现的次数。
断言(assertions):关于文本的一些声明。
52. 正则表达式中“^”的几种意义
在首位:匹配字符串首。 ^a:匹配以a为首的一个字符串。
在[]中:表示相反。[^a]:匹配除了a之外的任意字符。
在后:表示本身。 ^:匹配^本身。
54. 量词的意义
55. 断言的意义
56. 设置风格的方法
统一设置程序的风格:使用应用程序对象的setStyle(new QxxxStyle)函数;
为某个部件单独设置风格:使用相应部件的setStyle(new QxxxStyle)函数。
57. 调色板QPalette类包含了部件各种状态的颜色组。
激活颜色组QPalette::Active,用于获得键盘焦点的窗口;
非激活颜色组QPalette::Inactive,用于其他的窗口;
失效颜色组QPalette::Disabled,用于因为一些原因而不可用的部件。
58. 使用样式表的三种方式
①使用QWidget::setStyleSheet()函数将其设置到一个指定的部件(及其子部件)上。
②使用QApplication::setStyleSheet()函数将其设置到整个应用程序上。
③在设计模式下,使用“右键”菜单中的“改变样式表”。
59. 设置透明窗体的方法及区别
方式一:使用setWindowOpacity()函数。 setWindowOpacity()函数可以实现窗口的透明效果。它的参数取值范围为0.0-1.0,取0.0时完全透明,取1.0时完全不透明。
方式二:使用setAttribute()函数。setAttribute(Qt::WA_TranslucentBackground)可以使窗体背景透明,而其中的部件不受影响。
60. 绘图设备类QPaintDevice的几个子类
61. 设置画笔和画刷函数的用法
(pen):设置画笔,确定线条属性。
sh(brush):设置画刷,确定填充属性。
62. QPainter绘制的图形类型
ne():绘制直线。
ct():绘制矩形
lipse():绘制椭圆
c():绘制弧
lygon():绘制多边形
63. 三种渐变及其用法
线性渐变:QLinearGradient(起点,终点)。position:起点为0,终点为1。
辐射渐变:QRadialGradient(圆心,半径,焦点)。position:圆心为0,圆周为1。
锥形渐变:QConicalGradient(中心点,起始角度)。position:起始角度为0,逆时针旋转一周为1。
setColorAt(qreal position, QColor &color)
64. 几种基本的坐标变换
放缩:QPainter::scale(sx,sy)函数。变换矩阵A=[(sx,0); (0,sy)],b=(0,0)
旋转:QPainter::rotate(α)函数。变换矩阵A=[(cosα, -sin α); (sin α, cos α)],
b=(0,0)
平移:QPainter::translate(dx,dy)函数。变换矩阵A=I, b=(dx,dy)
错切:QPainter::shear(shx,shy)函数。变换矩阵A=[(1,shx);(shy,1)], b=(0,0)
65. 图形视图框架主要包含三部分:
图形项(QGraphicsItem):是基本的绘图单元。
场景(QGraphicsScene ):是图形项对象的容器。
视图(QGraphicsView):用来使场景中的内容可视化。
66. 图形视图框架中相关函数的基本用法
m(item):向场景中添加已有的图形项
t():新建标准图形项(矩形),并添加到场景中。
(QPoint):返回指定位置处最顶层可视的图形项。
():返回满足特定条件的所有图形项。
egroundBrush():设置视图的前景颜色。
kgroundBrush():设置视图的背景颜色。
67. 图形视图坐标系统中默认坐标原点的区别
图形项坐标:在边界矩形的中心。
场景坐标:在边界矩形的中心。
视图坐标:在边界矩形的左上角。
68. 图形视图框架中的四种图形效果
69. QPropertyAnimation类使用缓和曲线对属性进行插值,从而实现动画效果,熟悉其相关函数:
ation(t):设置动画的持续时间。
rtValue(p0):设置动画开始时属性的值。
Value(p1):设置动画结束时属性的值。
ValueAt(a,pa):设置动画中间处属性的值。
ingCurve():设置动画使用的缓和曲线。
():开始运行动画。
70. Qt多媒体应用相关类
QSound类:简单的声音播放,不同平台支持的格式不同。
QMovie类:简单的动画播放,主要支持gif和mng格式。
QtMultimedia模块:对音频视频底层的控制。
Phonon多媒体框架:对音频视频实现更多的控制。
71. QSound类相关函数
新建声音对象:QSound sound(“mysounds/”);
播放声音对象:();
停止播放声音:();
设置循环次数:ps(number);
72. QMovie类相关函数
新建动画对象:movie = new QMovie(this);
设置动画文件:movie->setFileName("../myMovie/");
设置播放窗口:ui->label->setMovie(movie);
开始播放:movie->start();
暂停播放:movie->setPaused(checked);
停止播放:movie->stop();
设置播放速度:movie->setSpeed(value);
73. 在模型/视图架构中的主要特征是,将数据的存储和数据的显示进行分离。
74. 模型索引包含三个属性:行号、列号和父项的模型索引。获取项的模型索引的方法。
indexA = model->index(0, 0, QModelIndex());
75. 为项目设置数据的函数
item0->setData(“A”, Qt::EditRole):设置项的文本角色数据。
item0->setText(“A”):与上面语句的效果等价。
版权声明:本文标题:QtCreator知识点总结讲解 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705214772h477214.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论