![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt深入浅出
文章平均质量分 81
吓人的猿
专注Linux系统开发,网络编程,服务后台开发
展开
-
Qt深入浅出(一) 从零开始写Qt应用
1 Qt简单介绍1.1 什么是Qt Qt是1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI(Graphical User Interface)程序,也可用于开发非GUI程序,比如控制台程序。与windows上面的MFC是同一类东西。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能,并且Qt很容易扩展。 Qt Creator是一个用于Qt开发...原创 2018-02-24 00:08:55 · 24337 阅读 · 4 评论 -
Qt深入浅出(十八)MySql的使用
MySql的使用1 使用QSqlDataBaseQt数据中的管理类为QSqlDataBase,没有继承任何基类,需要在pro文件中添加QT += sql。代码如下:#include <QSqlDatabase>#include <QDebug>#include <QCoreApplication>int main(int argc, char**argv...原创 2018-02-24 00:42:56 · 1082 阅读 · 0 评论 -
Qt深入浅出(十六)多国语言国际化
多国语言国际化 Qt自己提供了一个种国际化方案, 生成字典文件的方法来翻译Qt应用中的tr()、translate()字符串,字典文件以”.qm”命名。 1 生成一个qm文件新建一个GUI工程”TestHello.pro”,在UI界面上添加两个按钮,并分别将文本修改为“hello”, “china”.修改”TestHello.pro”文件,添加如下代码:TRANSLATIONS += Tes...原创 2018-02-24 00:40:14 · 698 阅读 · 0 评论 -
Qt深入浅出(十五)QTableView
QTableView 表格视图控件QTableView,需要和QStandardItemModel, 配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStandardItemModel数据模型,不能单独显示出来。V(view)是指QTableView视图,要来显示数据模型,C(controllor)控制在Qt中被弱化,与View合并到一起。1 QTableView简单应用 Q...原创 2018-02-24 00:39:18 · 102561 阅读 · 17 评论 -
Qt深入浅出(十四)图形视图框架
图形视图框架 使用QPushButton、QLabel、QCheckBox等构成GUI的控件或自定义图形时,开发应用程序会变得很简单。但是如果想在GUI中使用数十个或者数百个图形对象,向用户完美展示控制场景,则会受到很多的限制。 图形视图框架用来管理2D图形项,支持绘制、缩放、事件响应等等。 1、快速提供并管理大量对象 2、将事件传递到每一个对象 3、管理焦点处理或对象选择等...原创 2018-02-24 00:37:52 · 4933 阅读 · 0 评论 -
Qt深入浅出(十三)多线程与定时器
多线程 我们之前的程序都是单线程运行,接下来我们开始引入多线程。就相当于以前的一个人在工作,现在多个人一起工作。 Qt中非常有必要使用多线程,这是因为,Qt应用是事件驱动型的,一旦某个事件处理函数处理时间过久,就会造成其它的事件得不到及时处理。 Qt中使用QThread来管理线程,一个QThread对象,就是一个线程。QThread对象也有消息循序exec()函数,用来处理自己这个线程的事件...原创 2018-02-24 00:36:24 · 12565 阅读 · 2 评论 -
Qt深入浅出(十二)2D绘图
2D绘图 之前我们使用 QPainter 在 QWidget 上绘图, 那么其实 QPainter 还能在任何 QPaintDevice上绘制, 继承至QPaintDevice 还有QPixMap、QImage、QPicture,那么它们的区别是. 1、使用 QPixMap 进行绘图,根据硬件显示进行优化. 2、使用 QImage 进行绘图,独立与硬件,保存最原始的图片数据. 3、QPic...原创 2018-02-24 00:35:27 · 1561 阅读 · 0 评论 -
Qt深入浅出(十一)事件处理机制
事件处理机制 什么是事件,比如当我们打开一个窗口, 如果我们不动鼠标或者键盘, 那这个窗口就永远静静的躺着, 只有我们使用鼠标点击,或者键盘按下键的时候, 窗口才会有对应的反应。那么这个过程中就是用户向窗口发送了事件。 在 Qt 的界面应用程序都是事件驱动的,程序的每个动作也都是由某个事件所触发。在Qt 中事件抽象成QEvent类。 Qt中的事件有其对应的事件处理函数,事件先由QApplic...原创 2018-02-24 00:34:32 · 1544 阅读 · 0 评论 -
Qt深入浅出(十)文件读写
文件读写 Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基类,为设备提供了公共实现和抽象接口用于读写块数据。QIODevice又继承至QObject。1 使用QFile打开文件QFile的构造函数QFile(const QString &name) //传入一个文件路径构造完成后,并没有打开文件,需要使用QFile::op...原创 2018-02-24 00:33:01 · 3388 阅读 · 0 评论 -
Qt深入浅出(九)QString与QByteArray
1 QString Qt的QString类提供了很方便的对字符串操作的接口,QString没有继承任何Qt基类。QString::arg()用法 QString str = QString("%1 %2 %3").arg(1).arg(2.0).arg("hello"); %1, %2, %3作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成1,%2将被替换成2.0,%...原创 2018-02-24 00:32:08 · 12250 阅读 · 0 评论 -
Qt深入浅出(八)模态对话框
模式对话框 对话框可以分为模式对话框和非模式对话框两种。模式对话框是指用户只能在当前的窗体中进行操作,在该窗体没有关闭之前不能切换到其它的窗体。非模式对话框是指当前的所操作的窗体可以切换。 简单来说,屏蔽同一应用程序中其它窗口事件响应的对话框,就叫做模式对话框。 一般情况下,用于确认信息的操作对话框属于模式对话框。如打开文件对话框就是典型的模式对话框,而常见的查找和替换便是非模式对话框。 ...原创 2018-02-24 00:30:45 · 1557 阅读 · 0 评论 -
Qt深入浅出(七)QMainWindow
窗口类QMainWindow 普通的桌面应用程序有个共同的特性,有菜单栏、工具栏、状态栏、中央窗口等部件。菜单栏其实可以看成是一个窗口,菜单栏中的每一个菜单也可以看成一个窗口,每个部件基本都可以认为是一个窗口。那么这些典型的桌面应用可以认为是一些QWidget的组合,通过QWidget派生的方式也确实能够完成这样的窗口。 但是如果每次都自己去设计,重复这些工作,想想都有些麻烦,于是Qt帮我们...原创 2018-02-24 00:27:57 · 16625 阅读 · 1 评论 -
Qt深入浅出(六)设计师界面
Qt Designer 使用代码布置窗口不仅耗时,而且也不够直观,Qt Designer设计师工具可以帮我们摆脱这些繁琐的工作,Qt designer 是一款可视化的ui设计工具。 Qt Designer可以编辑好一个设计师界面,设计师界面一般是一个.ui后缀的文件,需要在.pro文件中添加变量FORMS,然后指定.ui文件的路径。 ui文件是通过xml标签语言来编写的。1 使用设计师界...原创 2018-02-24 00:24:34 · 18945 阅读 · 3 评论 -
Qt深入浅出(五)信号与槽机制
信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。 信号和槽是QT自行定义的一种通信机制,它独立于标准的 C++ 语言,是标准C++的扩展。因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的QT工具,一般叫做元对象编辑器,该工具是一个C++ 预处理程序,它为高层次的事件处理自动生成所...原创 2018-02-24 00:20:23 · 4645 阅读 · 1 评论 -
Qt深入浅出(四)布局管理器
布局管理器可以让程序员摆脱繁琐的窗口位置大小设置工作。并且布局管理器可以依据窗口大小变更布局控件的位置大小。 布局管理器基类为QLayout继承至QObject 和QLayoutItem,它是一个抽象基类,需要被进一步继承才能使用。它的派生类有QHBoxLayout、QVBoxLayout和QGridLayout。 每个窗口对象都可以设置一个布局管理器,来管理所有它的子窗口,由于...原创 2018-02-24 00:18:43 · 2265 阅读 · 1 评论 -
Qt深入浅出(三)Qt的内存管理机制
4 内存管理机制一般我们不直接用QWidget来实例化对象,用它的派生类来生成对象,main函数中一般不写太多代码,都是在派生类的构造函数中进行窗口的初始化、布局、设置、其子窗口设置等等。例如:main.cpp#include <QApplication>#include "widget.h"int main(int argc, char** argv){ QAppli...原创 2018-02-24 00:16:34 · 2951 阅读 · 0 评论 -
Qt深入浅出(二)Qt编译机制
3 Qt的编译机制3.1 编译过程 使用qmake.exe 工具解析.pro文件,然后生成Makefile, 通过makefile-32bit.exe解析Makefile文件来编译,可通过查看Qt Creator显示的编译信息。 先执行qmake命令解析class1_1.pro文件,生成Makefile.Debug文件"C:\Qt\Qt5.7.0\5.7\mingw53_32\bin\qmak...原创 2018-02-24 00:14:02 · 4249 阅读 · 0 评论 -
Qt深入浅出(十七)多媒体
多媒体编程1 音频组件 Qt提供的多媒体可以从高层到底层进行访问, 以及处理音频的输出和输入。Qt为了开发基于多媒体的应用程序,可以使用QMediaPlayer类. 不仅支持从属的压缩音频格式,也支持用户安装的多媒体插件. 播放多媒体使用到QMediaPlayer类,需要在.pro文件中添加QT += multimedia1.1 最简单的音乐播放器的实现最简单例...原创 2018-02-24 00:41:06 · 1942 阅读 · 0 评论