Qt学习日记1
来源:互联网 发布:优化软件排行榜 编辑:程序博客网 时间:2024/05/21 01:50
Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
2. Q_OBJECT宏
解析:Q_OBJECT宏的作用是启动Qt元对象系统的一些特性,比如支持信号和槽等,它必须放置到类定义的私有区。
3. #include <QApplication>
解析:Application类的定义,QApplication管理各种各样的图形化应用程序的广泛资源、基本设置、控件流和事件处理等。
4. 信号和槽机制
解析:
Qt中的信号和槽机制用于完成界面操作的响应,是完成任意两个Qt对象之间的通信机制。其中,信号会在某个特定情况或动作下被触发,槽是等同于接收并处理信号的函数。一个类若要支持信号的槽机制,必须从QObject或QObject的子类继承,并且Qt信号和槽机制不支持对模板的使用。信号和槽机制常用的连接方式,如下所示:
(1)一个信号可以与另一个信号连接
connect(Object1, SIGNAL(signal1), Object2, SIGNAL(signal1))表示Object1的信号1发射触发Object2的信号1发射。
(2)同一个信号可以与多个槽相连
connect(Object1, SIGNAL(signal2), Object2, SIGNAL(slot2))
connect(Object1, SIGNAL(signal2), Object3, SIGNAL(slot1))
(3)同一个槽可以响应多个信号
connect(Object1, SIGNAL(signal2), Object2, SIGNAL(slot2))
connect(Object3, SIGNAL(signal2), Object2, SIGNAL(slot2))
(4)一个信号连接一个槽
connect(Object1, SIGNAL(signal), Object2, SLOT(slot1))。其中,signal为对象Object1的信号,slot为对象Object2的槽。
5. Qt元对象系统
解析:Qt元对象系统提供了对象间的通信机制(信号和槽)、运行时类型信息和动态属性系统的支持,它使Qt能够更好地实现GUI图形用户界面编程,并且Qt的元对象系统不支持C++模板。Qt的元对象系统基于三个事实,如下所示:
(1)基类QObject:任何需要使用元对象系统功能的类必须继承自QObject。
(2)Q_OBJECT宏:Q_OBJECT宏必须出现在类的私有声明区,用于启动元对象的特性。
(3)元对象编译器(Meta-Object Compiler, moc):为QObject子类实现元对象特性提供必要的代码实现。
6. Qt控件-按钮组(Buttons)
解析:
(1)Push Button:按钮。
(2)Tool Button:工具按钮。
(3)Radio Button:单选按钮。
(4)Check Box:复选框。
(5)Command Link Button:命令链接按钮。
(6)Button Box:按钮盒。
7. Qt控件-输入空间组(Input Widgets)
解析:
(1)Combo Box:组合框。
(2)Font Combo Box:字体组合框。
(3)Line Edit:行编辑。
(4)Text Edit:文本编辑。
(5)Plain Text Edit:纯文本编辑。
(6)Spin Box:数字显示框(自旋盒)。
(7)Double Spin Box:双自旋盒。
(8)Time Edit:时间编辑。
(9)Data Edit:日期编辑。
(10)Data/Time Edit:日期/时间编辑。
(11)Dial:拨号。
(12)Horizontal Scroll Bar:横向滚动条。
(13)Vertical Scroll Bar:垂直滚动条。
(14)Horizontal Slider:横向滑块。
(15)Vertical Slider:垂直滑块。
8. Qt控件-显示控件组(Display Widgets)
解析:
(1)Label:标签。
(2)Text Browser:文本浏览器。
(3)Graphics View:图形视图。
(4)Calendar:日历。
(5)LCD Number:液晶数字。
(6)Progress Bar:进度条。
(7)Horizontal Line:水平线。
(8)Vertical Line:垂直线。
(9)QDeclarativeView:向QML暴露数据视图。
(10)QWebView:Web视图。
9. Qt控件-空间间隔组(Spacers)
解析:
(1)Horizontal Spacer:水平间隔。
(2)Vertical Spacer:垂直间隔。
10. Qt控件-布局管理组(Layouts)
解析:
(1)Vertical Layout:垂直布局。
(2)Horizontal Layout:横向(水平)布局。
(3)Grid Layout:网格布局。
(4)Form Layout:表格布局。
11. Qt控件-容器组(Conta iners)
解析:
(1)Group Box:组框。
(2)Scroll Area:滚动区域。
(3)Tool Box:工具箱。
(4)Tab Widget:标签小部件。
(5)Stacked Widget:堆叠部件。
(6)Frame:帧。
(7)Widget:小部件。
(8)MdiArea:MDI区域。
(9)Dock Widget:停靠窗体部件。
(10)QAxWidget:封装Flash的ActiveX控件。
12. Qt控件-项目视图组(Item Views)
解析:
(1)List View:清单视图。
(2)Tree View:树视图。
(3)Table View:表视图。
(4)Column View:列视图。
13. Qt控件-项目控件组(Item Widgets)
解析:
(1)List Widget:清单控件。
(2)Tree Widget:树形控件。
(3)Table Widget:表控件。
说明:Qt常用类包括QString类,容器类(QList类、QLinkedList类、QVector类、QMap类、QHash类),QVariant类,算法类(<QtAlgorithms>模块、<QtGlobal>模块),QRegExp类等。
参考文献:
[1] Download Qt Open Source:http://www.qt.io/download-open-source/#section-2
[2] Qt视频教程:http://www.jikexueyuan.com/course/qt/
[3] CSDN的Qt论坛:http://bbs.csdn.net/forums/Qt/
[4] Qt Documentation:http://doc.qt.io/
[5] Qt的主要类:http://www.kuqin.com/qtdocument/mainclasses.html
[6] Qt开源社区:http://www.qter.org/
[7] Qt快速入门系列教程:http://bbs.qter.org/forum.php?mod=viewthread&tid=193
[8] Qt学习之路:https://www.devbean.net/category/qt-study-road-2/
- Qt学习日记1
- Qt学习日记
- QT学习日记(一)
- Qt 学习日记(一)
- QT学习日记1: 信号与槽简单用法
- Qt使用日记(1): 安装
- Qt项目开发日记1
- Qt使用日记(1): 安装
- QT日记
- 调试NS2, 使用Eclipse CDT或Qt Creator ------ NS2学习日记 (1)
- linux学习日记四——qt学习
- JSP学习日记 - 1
- Hibernate学习日记(1)
- arm学习日记(1)
- 学习.net日记1
- javap 学习日记~1
- 学习日记-1
- birt学习日记1
- LSTM学习日记1
- boost::asio::serial_port set RTS DTS
- OpenMP学习日记1
- Pthreads学习日记1
- 检查mysql的运行情况
- Qt学习日记1
- less
- FFmpeg学习日记1
- CUDA学习日记2
- OpenCV学习日记2
- C++学习日记3
- CUDA学习日记3
- A water problem
- 2. Add Two Numbers