
Qt入门及实战宝典
文章平均质量分 86
从事技术研发10多年,有丰富的线上项目实战和实施经验,本小博乃点滴工作及项目实战总结积累,精华知识记录, 从入门到进阶,绝对物超所值,内容通俗易懂,代码,正版工具软件,开发文档精中选精,一应俱全,微信、QQ提供在线指点和帮助。
大王算法
主要做机器人,操作系统,算法及AI方面的研发工作,有感兴趣的朋友可以私信加我好友,一起探讨交流!
展开
-
C++常量变量作用域及使用详解
对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用域;而生命周期就是这个变量可以被引用的时间段。不同生命周期的变量,在程序内存中的分布位置是不一样的。一个程序的内存分为代码区、全局数据区、堆区、栈区,不同的内存区域,对应不同的生命周期。在C++中,变量的作用域和生命周期是两个核心概念,它们定义了变量何时可以被程序访问以及变量存在的时间长度。原创 2024-04-05 22:16:28 · 145 阅读 · 1 评论 -
浅谈加密技术
通过我们的了解,对称加密的实现比较简单,但是安全性不是很高,一般用在对安全要求级别不是很高的情况下,但是非对称加密比较复杂,但是安全性很高,在实际应用中需要我们综合利弊考虑.原创 2024-03-10 21:42:28 · 115 阅读 · 0 评论 -
Qt核心知识归类及相关资料
Qt是什么 ?Qt是综合性跨平台的C++应用开发框架,它包括:一个存有400多种图形化用户界面的宏大C++类库、数据库、内核、XML、网络功能、OpenGL、多线程及众多用于以下目的的高级跨平台开发工具:• GUI版面和表单设计• 国际化• 文档 Qt库Qt 类库拥有构建强健高端应用所需的全部函数被分为原创 2016-09-30 08:58:20 · 5254 阅读 · 0 评论 -
Qt中MVC框架详解
Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户。这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中。模型 - 视图 - 控制器(MVC)是一种设计模式,由三类对象组成:模型:应用程序对象。视图:屏幕演示。控制器:定义了用户界面响应用户输入的方式。在引入MVC之前,用户界面的设计往往是将这原创 2016-10-30 20:46:26 · 13775 阅读 · 0 评论 -
Qt多页面切换之QTabWidget
http://blog.youkuaiyun.com/qiurisuixiang/article/details/6916603[cpp] view plain copy print? //mydialog.h #ifndef MYDIALOG_H #define MYDIALOG_H #include class QTabWidg转载 2016-10-30 20:49:54 · 12847 阅读 · 3 评论 -
QT主窗口的停靠窗口实现
关于停靠窗口,现在我们所见的许多软件都存在停靠窗口,如Visual Studio软件的类视图、属性视图和资源视图都是停靠窗口的实际案例;停靠窗口作为主窗口的一部分,可以停靠、浮动、显示隐藏等;该博文主要讲解在Qt下的停靠窗口的实现;主窗口为单文档窗口,继承于QMainWindow类,该类包含了标准的菜单栏,工具栏,内容窗口,状态栏等;停靠窗口类为QDockWidget;主要是使用上述的两个类;原创 2016-10-30 20:53:54 · 2941 阅读 · 0 评论 -
QFrame类使用总结
QFrame与QWidget的区别QFrame是基本控件的基类,QWidget是QFrame基类,关系如下:QPushButton,QLabel… -> QFrame ->QWidget我们经常会从QFrame或者QWidget继承然后自定义一个复杂的widget,在设置样式表的时候它们就有一个大的区别。 从QWidget继承实现了一个自定义的widget,在设置样式表的时候发现没有生原创 2016-11-22 22:25:45 · 58770 阅读 · 0 评论 -
Qt模型和视图架构
Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户。这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中。模型 - 视图 - 控制器(MVC)是一种设计模式,由三类对象组成:模型:应用程序对象。视图:屏幕演示。控制器:定义了用户界面响应用户输入的方式。在引入MVC之前,用户界面的设计往往是将这原创 2016-11-22 22:32:30 · 2741 阅读 · 0 评论 -
Qt布局管理详解
Qt布局管理手册:http://doc.qt.io/qt-5/qtwidgets-index.html#styleshttp://doc.qt.io/qt-5/qtwidgets-index.html#widgetshttp://doc.qt.io/qt-5/qtwidgets-index.html#layouts以下是Qt手册中的《布局管理》的译文:转载 2016-09-30 09:00:41 · 26498 阅读 · 3 评论 -
QPainter类使用详解
QPainter类提供了许多高度优化的函数去做大部分的GUI绘制工作。它可以画从简单的线到复杂的形状。通常情况下,QPainter的使用是在widget当中的painter事件使用。记得在执行完之后要及时销毁QPainter的对象。 void SimpleExampleWidget::paintEvent(QPaintEvent *) { QPainter painter(原创 2016-12-25 21:35:40 · 24317 阅读 · 0 评论 -
Qt容器类详解
QT不仅支持C++的STL模板库,同时自己也定义了一套容器类和与之操作的算法类,使用QT定义的这一套库,可以使在各个平台的表现相同。QT的这些容器被设计为更轻便,更安全和更容易使用。容器类是隐含共享(implicitly)的,可重入(reentrant)的和线程安全的。为容器遍历提供了两种迭代器(Java-style,STL-style),并且QT提供了foreach关键字,更加方便元素遍历。转载 2016-12-25 22:08:47 · 8707 阅读 · 0 评论 -
Qt中使用Direct3D
Qt 6.6为Direct3D 12引入了一个新的QRhi后端。这意味着现在支持的3D API的数量达到了五个:Vulkan、Metal、OpenGL/ENGGLES、Direct3D11和Direct3D12。使用Qt Quick和Qt Quick 3D的应用程序现在可以选择使用D3D12来渲染QQuickWindow或QQuickView的内容。开发者可能需要使用Windows平台的Direct3D来进行更加底层的图形渲染。原创 2016-12-31 22:15:41 · 2625 阅读 · 0 评论 -
Qt打印详解
在Qt中,打印与在QWidget,QPixmap或者QImage绘图很相似,一般步骤如下:1、创建绘图设备的QPrinter;2、弹出打印对话框,QPrintDialog,允许用户选择打印机,设置属性等;3、创建一个QPrinter的QPainter;4、用QPainter绘制一页;5、调用QPrinter::newPage(),然后绘制下一页;6、重复步骤4,5,直到打印原创 2017-01-25 09:16:06 · 18817 阅读 · 1 评论 -
QWT的使用
QT下开源图表库比较少,用的比较多的就是QWT, QWT提供的API不够简洁,绘图过程也比较复杂. 这一点不如Java的JFreeChart方便.一. 编译安装 QWT最新版本是6.1, QWT5与QWT6一点也不兼容,windows下编译非常简单: cd $(QWT_ROOT) qmake nmake转载 2017-01-25 09:25:05 · 3632 阅读 · 0 评论 -
Qt SVG Viewer
Qt提供在widgets和其他paint device上渲染和展示SVG的类,本例就允许用户载入SVG文件并在QGraphicsView上用QGraphicsSvgItem显示它。并且例子还可以选择渲染者,QGraphicsView可以用QWidget或QGLWidget作为视口。也可以使用第三方渲染模型通过QImage。 程序运行如图:renderer可以选择:Nativ转载 2017-01-25 09:25:14 · 1796 阅读 · 0 评论 -
Qt视图标尺功能实现详解
在编程中,QT(通常指的是Qt Framework)提供了一系列的工具和库用于创建图形用户界面(GUI)。如果你希望在Qt中实现一个视图标尺(ruler)功能,你可以通过自定义一个QWidget或者更具体的来完成。原创 2017-01-25 09:26:32 · 7431 阅读 · 3 评论 -
Qt的事件处理和定时器解析
Qt中有这么多类的事件,我们怎么样比较简便的处理每个事件呢?设想,如果是每个事件都对应同一个事件处理器,在该事件处理器中对不同的事件进行分类处理,这样的弊端有两点:第一,导致该事件处理器过于臃肿复杂;第二,这样不便于扩展,当系统新增加事件类型或者是我们需要使用到自定义事件时,就不得不修改Qt的源码来达到目的。所以Qt设计者的做法是针对不同类型的事件提供不同的事件处理器与之对应。这里又有一个问题了,原创 2017-01-25 20:51:33 · 765 阅读 · 0 评论 -
QStringList类使用总结
QStringList类提供了一个字符串列表从QList 继承而来,它提供快速索引为基础的接入以及快速插入和清除其成员函数用于操作这个字符串列表如append(),insert(), replace(),removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()等1. 增加字符串 可以通过a原创 2017-01-25 20:54:52 · 6471 阅读 · 0 评论 -
QPoint和QSize
QPoint类定义了平面上的一个点:一个点由一个x坐标和一个y坐标确定。坐标类型是QCOORD(一个32位整数)。QCOORD的最小值是QCOORD_MIN(-2147483648),最大值是QCOORD_MAX(2147483647)。坐标可以通过函数x()和y()来访问,它们可以由setX()和setY()来设置并且由rx()由ry()来参考。假设一个点p,下面原创 2017-01-25 21:05:35 · 2426 阅读 · 0 评论 -
QGridLayout按比例设定布局
如何使用代码控制QGridLayout中的窗体比例呢?有两个函数可以用上:QGridLayout::setColumnStretch(列码, 比例值);QGridLayout::setRowStretch(行码, 比例值); -> 下面是需要实现的比例效果图:第一行和第二行是1:1,第一列和第二列是1:2 具体使用原创 2016-09-30 09:01:02 · 26084 阅读 · 1 评论 -
Qt设置窗口及窗口相关操作详解
如果在隐藏对话框后调用 show()函数,那么该对话框将恢复到原始位置,要恢复到用户上次的位置,可以先在 closeEvent()函数中保存位置信息,然后在show0函数之前将对话框移至该位置。Q对话框可以是模态的,也可以是非模态的。对话框始终是一个顶级小部件,但如果它有一个父级,它的默认位置将集中在父级的顶级小部件的顶部如果它本身不是顶级的。而对于非模式对话框,在没有关闭对话框的情况下,既可以对该对话框进行操作,也可以对其他窗口进行操作,例如记事本中的查询对话框和替换对话框就是非模式对话框。原创 2016-12-30 17:20:50 · 5861 阅读 · 0 评论 -
Qt常用类QAction类及方法简介
1、事件是由窗口系统或者 Qt 自身产生的,用以响应所发生的各类事情。2、Qt 事件的产生可能是因为键盘或鼠标被按下,也有可能是窗口在显示时,产生的绘制事件。3、大多数事件都是为用户的操作而产生的响应。其中比较特殊的定时器事件,则是由系统独立产生的。4、在 Qt 中,事件就是 QEvent 子类的一个实例, QEvent 是所有事件类的基类。我们可以通过QEvent 的 t原创 2016-12-30 17:02:42 · 10162 阅读 · 0 评论 -
Qt中的Json解析详解
JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它比XML还小巧。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。关于Qt中对JSON的生成原创 2016-12-25 16:11:32 · 3799 阅读 · 0 评论 -
Qt动画机制详解
你也可以通过继承类来创建完全自定义的动画类。这在你需要完全控制动画执行的时候非常有用。Qt动画的使用不仅限于视觉效果,还可以用来创建复杂的用户交互和流畅的状态转换。Qt的动画机制与其信号槽机制紧密结合,使得动画状态的变化可以很容易地与应用程序其他部分的行为关联起来。原创 2016-09-30 09:03:18 · 2257 阅读 · 0 评论 -
如何使用QString::arg()
在Qt中QString::arg的定义:QString QString::arg ( const QString & a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) constQString也重载的+和+=运算符,在QT的QString中,arg方法类似于C中的printf中使用的格式输出原创 2016-09-30 09:02:35 · 1166 阅读 · 0 评论 -
Qt的Mysql数据库表操作(1)
Qt中的QSqlDatabase、QSqlQueryModel、QSqlRecord、QSqlTableModel 等类为我们提供了快速开发数据库的方式,支持多种数据库连接,例如oracle,db2,Mysql,Sqlserver等数据库,QSqlDatabase类实现了数据库连接的操作;QSqlQuery类用来执行SQL语句,对数据库记录的Select、Insert、Update、Delete操原创 2016-12-31 21:17:27 · 4679 阅读 · 0 评论 -
Qt的Mysql数据库表操作(2)
Qt的MySQL数据库表操作(1)中,我们讲了QSqlDatabase,QSqlQuery等类的常见使用方法,接下来,我们主要讲其它几个常用数据库操作类的使用: QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序1、常用函数QVariant header原创 2016-12-31 22:13:45 · 1735 阅读 · 0 评论 -
Qt的5种常用布局搭建
Qt布局详解: 界面开发首先要对整个界面进行布局,使窗体上的所有的控件必须有一个合适的尺寸和位置。那么做出来的界面才看起来美观。那么如何对界面进行布局呢?Qt提供了一些类负责排列窗体上的控件,主要有:QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout,QStackLayout。(布局管理类)这些类简单易用,无论在代码中还是用Qt Design原创 2016-09-30 09:06:16 · 5694 阅读 · 1 评论 -
QT自定义精美换肤界面
Qt实际库里的自带组件的样式是系统标准的,要得到更好看的界面,光靠库里的样式是远远不够的,样式表的出现使得使用Qt做出更加漂亮的界面成为可能。原创 2016-09-30 08:59:08 · 21509 阅读 · 10 评论 -
Qt事件处理简析
在Qt中,你也可以定义自己的事件类型。这通过继承QEvent类并添加所需的数据和行为来实现。自定义事件可以使用发送,然后在目标对象的event函数中进行处理。原创 2016-11-18 09:53:12 · 835 阅读 · 0 评论 -
Qt事件过滤器详解
Qt的事件模型一个强大的功能是:一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦点。一个最直接的方法是继承QLineEdit重写keyPressEvent()函数,当点击了Space键时,调转载 2016-11-11 15:50:51 · 2975 阅读 · 0 评论 -
VS2013+Qt5.5+OpenCv3.1.0+Win10(64bit)安装详解
一、安装VS2013Visual Studio 下载地址是:http://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs#DownloadFamilies_2,在浏览器的地址栏输入上面的下载地址,进入页面,如图1-1所示。 图 1-1原创 2017-05-31 22:30:54 · 2174 阅读 · 0 评论 -
QT 利用QPainter绘图的坐标系转换
Qt绘制图形时,少不了坐标计算,那么如何更好更快地计算出坐标呢?现在来分析一下。 如下图所示,原来坐标系是(0,0)X axis右Y axis下现在想把它变成,坐标在窗口中间,X右,Y上,标准的数学中的坐标系。Painter.setWindow(x,y,width().height());用setWindow这个函数,表示什么意思。前两个参数左上角位置,原创 2017-01-25 09:15:17 · 22656 阅读 · 4 评论 -
QCustomPlot介绍及实例
QCustomPlot 是一个比较小的 QT 图表插件。用来画曲线图、趋势图、坐标图、柱状图等类似二维图的库。实现大部分的2维图形绘制。使用时,我们在程序中写完相关调用的代码后,只需将 QCunstomPlot.cpp 和 QCustomPlot.h 两个文件加入工程,正常编译即可,有GPL的授权,支持跨平台的C/C++语言 。 QCustomPlot给我们提供了非常方便的加原创 2017-05-31 21:40:37 · 9617 阅读 · 0 评论 -
Qt进程间通信
1、QT通信机制 为了更好的实现QT的信息交互,在QT系统中创建了较为完善的通信机制。QT的通信可分为QT内部通信和外部通信两大类。对于这两类通信机制及应用场合做如以下分析: (1)QT内部对象间通信 在图形用户界面编程中,经常需要将一个窗口部件的变化通知给窗口的其它部件使其产生相应的变化。对于这种内部对象间的通信,QT主要采用了信号和槽的机制。这种机制是QT区别于其他GUI工具原创 2017-06-30 19:57:24 · 1326 阅读 · 0 评论 -
QTimer::singleShot()函数使用
当我们使用时,定时器将在指定的毫秒数后激活,然后执行指定的槽函数或者回调函数。这是一种在事件驱动的程序中实现简单延时执行功能的便捷方式。记得要在使用之前启动我们的 Qt 应用程序的事件循环,通常是通过调用来完成的,因为定时器依赖于事件循环来跟踪时间和调度事件。原创 2017-06-30 20:13:56 · 65721 阅读 · 2 评论 -
Qt智能指针学习总结
智能指针为了管理内存等资源,C++程序员通常采用RAII(Resource Acquisition Is Initialization)机制:在类的构造函数中申请资源,然后使用,最后在析构函数中释放资源。如果没有智能指针,程序员必须保证new对象能在正确的时机delete,四处编写异常捕获代码以释放资源,而智能指针则可以在退出作用域时(不管是正常流程离开或是因异常离开)总调用del原创 2017-06-30 19:58:52 · 1003 阅读 · 0 评论 -
Qt线程详解
线程与并行处理任务息息相关,就像进程一样,线程一般运行在进程里面,一个进程可以有多个线程。线程与进程有什么区别呢?当你在打游戏的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行电子表格程序;另一个进程运行一个媒体播放器。这种情况最适合用多任务这个词来描述。进一步观察媒体播放器,你会发现在这个进程内,又存在并行的工作。当媒体播放器向音频驱动原创 2017-06-30 20:03:00 · 8527 阅读 · 3 评论 -
QRound的使用总结
Qt中qRound的实现,在负数的情况下不同于一般的四舍五入。如果负数尾数0.5的情况下,则负小数整数部分-1。 Q_DECL_CONSTEXPR inline int qRound(double d){ return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); }/** * Qt中通原创 2017-07-30 21:36:30 · 7558 阅读 · 0 评论 -
Qt事件处理机制详解
Qt程序是基于事件驱动的,在每个GUI主线程的main函数后面都有return a.exec();实际上就是使Qt程序进入事件循环。下面我们看看Qt exec()的源码:原创 2017-07-30 21:36:58 · 3515 阅读 · 0 评论