QT---结构基础
锥子A
这个作者很懒,什么都没留下…
展开
-
Qt图形视图框架(The QGraphics View Framework)
图形视图提供了一个外表(surface)来实现大量的客户所做的2D图形项的管理和相互的结合;一个视图窗口部件来使这些项可视化,并支持缩放和旋转。该框架包括一个事件传播体系,可以使得场景中的项的交叉可以达到双精度的精确控制。其中的项可以处理事件、鼠标按压、移动、释放和双击事件,它们也可以追踪鼠标的移动。图形视图使用一个BSP(二进制空间分区Binary Space Partitioning)...转载 2019-03-12 15:14:41 · 445 阅读 · 0 评论 -
C++---关于静态库,动态库,中间文件的概念
在说明Linux的.a、.so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系windows下obj,lib,dll,exe的关系 lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。 所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。 所谓动...转载 2019-03-07 22:33:33 · 1010 阅读 · 0 评论 -
QT之基础----QTSingleApplication的使用
QTSingleApplication由Qt官方提供的,用于实现只启动一个实例,并在启动时可以向向另一个实例通信(依赖于QtNetwork模块)QTSingleApplication下载路径:链接:https://pan.baidu.com/s/1bBLgkpOW3lq6ZQj9ultxyA提取码:2n9h1. 添加源码到工程将QTSingleApplication解压,将解压后目...转载 2019-03-19 15:27:12 · 2534 阅读 · 0 评论 -
QT----之QWidget、QDialog及QMainWindow的区别
这3个基类从名字上看分别是 "微件"、"对话框"、"主窗口,QWidget类是所有用户界面对象的基类,QMainWindow和QDialog都是QWidget的子类。窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 QMain...转载 2018-12-20 11:15:35 · 782 阅读 · 0 评论 -
QT---之如何在.pro文件添加大量文件
有时候需要在pro中添加需多的库文件,如下图所示,这里有102个库文件,如果一个个的复制粘贴,效率太低了。可以打开命令提示符窗口,cd到该目录,然后执行dir /b >all.txt,那么所有的库文件名都存储在all.txt中了,如下图所示,接着就可以很方便的把所有的库文件名一次拷贝到pro中。...转载 2018-11-01 21:08:49 · 1920 阅读 · 0 评论 -
QT----之pro配置
工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下。于此备录,分享共勉。为了更好的理解,先创建一个简单的工程作为实践。【1】创建一个pro文件1.1 新建proDemo工程。步骤如下:Qt Creator--->New Project--->应用程序--->Qt Widgets Application--->名称为:proDemo(创建路径自己拟定,本...原创 2019-09-26 16:28:34 · 338 阅读 · 0 评论 -
QT---之.pro文件结构
概念:1. 注释从“#”开始,到这一行结束。2.qmake 以“ 行 ”为一个语句段,如果一个语句太长,需要多行展示,则需要使用 符号 “\”表示一行语句未结束3. Qt程序一般使用Qt提供的qmake工具来编译。注释:qmake工具可以使用与平台无关的.pro文件生成与平台相关的makefile。该工具包含了调用Qt内置代码生成工具(moc, uic,...转载 2018-10-12 09:07:16 · 624 阅读 · 0 评论 -
QT之结构---Q_PROPERTY概念
QT提供了一个成熟的属性系统,但是作为一个跨平台的且与编译器无关的库,qt不依赖于非标准的编译器功能例如 __property or [property]; QT的强大之处在于它可以支持任何标准的c++编译器。 QT是基于 Meta-Object System(元对象)和signals and slots(信号槽)的。 Q_PROPERTYQ_PROPERTY()是一个宏,用来在...转载 2018-10-29 22:45:43 · 464 阅读 · 0 评论 -
QT---之结构基础----Pro文件【makefile】
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。B...转载 2018-09-17 09:02:38 · 405 阅读 · 0 评论 -
Qt结构---Qt 手动生成moc 文件
1.问题来源 Qt自己会先把用到Qt自己的东西编译一遍,变成标准C++编译器可以识别的东西。 moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJ...原创 2018-10-26 22:06:43 · 2398 阅读 · 0 评论 -
QT之结构---之QT中qDebug()无法输出解决办法
在调试qt程序,无论是debug版本还是release版本,都会遇到此类问题,先将其总结在此。现象描述:无论是头文件还是源文件中都有#include <qdebug.h>程序中qdebug()<<的使用方法都正确却在输出窗口中无法看到输出的信息。 解决方法:1.在工程文件.pro的最后添加:CONFIG += console2.如果你的工程文...转载 2018-10-28 23:04:42 · 4150 阅读 · 1 评论 -
QT---之qobject_cast 的使用
函数原型:T qobject_cast ( QObject * object )本方法返回object向下的转型T,如果转型不成功则返回0,如果传入的object本身就是0则返回0。在使用时有两个限制:1# T类型必须继承自QObject。2# 在声明时必须有Q_OBJECT宏。使用场景:当某一个Object emit一个signal的时候,它就是一个se...转载 2019-03-12 16:49:53 · 557 阅读 · 0 评论 -
QT结构基础----之 QGraphicsScene QGraphicsView QGraphicsItem学习记录
一.场景(QGraphicsScene)QGraphicsScene 提供了图形视图框架的场景,相当于一块画布,并具有以下功能。1.一个管理大量图形项的快速接口。2.向每个图形项传播事件3.管理图形项的状态,比如选择,焦点处理等4.提供无转换的渲染功能,主要用于打印简单地一个场景使用 QGraphicsScene scene;//场景 scene.addText...转载 2019-03-12 20:09:04 · 1003 阅读 · 0 评论 -
Qt 断言的使用 Q_ASSERT
前言在写代码的时候,难免会调试程序,确保某一个语句或运算结果符合预期,如果不是的话就将程序暂停,便于修改,那么这时候就要用到一个Qt 中的调试神器—Q_ASSERT(断言)。所谓的断言,其实很简单,它是一个宏定义,接受一个布尔值,当判断的语句为真时,不做任何操作,如果判断的语句为假,那么在 debug 模式下程序运行到该地方会自动断下,并弹出一个系统消息框,并且在程序输出栏会打印出断言的位置...转载 2019-03-12 20:47:51 · 650 阅读 · 1 评论 -
QT之结构----关于撤销与重做
用到的类:1.QUndoStack: 一个存放 QUndoCommand 命令的栈.2.QUndoCommand:The QUndoCommand class is the base class of all commands stored on a QUndoStack.3.QUndoView:The QUndoView class displays the contents of a...转载 2019-04-02 13:30:14 · 1780 阅读 · 0 评论 -
QT---QDockWidget的概念
概述 许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口。Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,不能得想要的任意组合形式,要得到如下图所示的效果,后续布局必须通过代码来完成。https://blog.csdn.net/czyt1988/a...转载 2019-04-01 21:04:01 · 478 阅读 · 0 评论 -
C++基础----之类型转换,static_cast, dynamic_cast, const_cast, reinterpret_cast,volatile的概念
前言1. c强制转换与c++强制转换c语言强制类型转换主要用于基础的数据类型间的转换,语法为:(type-id)expression//转换格式1type-id(expression)//转换格式2c++除了能使用c语言的强制类型转换外,还新增了四种强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast,主要运...转载 2019-03-28 10:12:12 · 236 阅读 · 0 评论 -
QItemDelegate和 QStyledItemDelegate的区别
QItemDelegate和 QStyledItemDelegate的区别2019年01月02日 16:55:40dongpanshan阅读数:296为使用方便,从 4.4开始,Qt 提供了另外的基于组件的子类:QItemDelegate和 QStyledItemDelegate。默认的委托是 QStyledItemDelegate。二者的区别在于绘制和向视图提供编辑器的方式。QSty...转载 2019-03-27 14:24:34 · 1654 阅读 · 0 评论 -
QT之画图-----delegate的概念
Qt中使用delegate来自定义控件的显示方法。与传统的MVC模式不同,在此之前,先了解一下何为MVC模式。MVC架构是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有...转载 2019-03-27 14:21:54 · 984 阅读 · 0 评论 -
QT---之基础----QSharedMemory
QSharedMemory1.setKey(),这是标记共享内存的一个标识符,在整个操作系统的共享内存中,用这个key去标识它,唯一标识。2.首先是create(),创建共享内存,向os申请内存空间,如果不创建,调用attach()会失败,在create()的时候,需要制定共享内存的大小,即字节数,跟windows的CreateFileMapping()一样,都是需要在c...转载 2019-03-19 13:56:56 · 565 阅读 · 0 评论 -
QT之结构---Q_UNUSED滤掉未引用的参数报警
Q_UNUSED 的使用在构建比较大型的工程的时候,若继承,重构虚函数,写数据model等等比较多的时候,会给出大量的 “未引用的形参” ,“warning: unused parameter ”的告警。这种告警多了会影响看出真正有问题的地方。例如:warning C4100: “parent”: 未引用的形参这是可以在该函数里面使用: Q_UNUSED (parent)来...转载 2019-03-22 15:04:20 · 831 阅读 · 0 评论 -
Qt ---之 QSizePolicy概念
简述QSizePolicy类是一个描述布局水平和垂直方向调整策略的属性。大小策略会影响布局引擎处理部件的方式,部件加入布局以后,会返回一个QSizePolicy,描述了其水平和垂直方向的大小策略。可以通过QWidget::sizePolicy属性为特定部件设置大小策略。| 版权声明:一去、二三里,未经博主允许不得转载。详细描述QSizePolicy包含了两个独立的QSizePoli...转载 2019-03-13 19:06:48 · 1178 阅读 · 0 评论 -
QT---之正则表达式QRegExp详解
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用...转载 2018-10-17 14:20:57 · 4070 阅读 · 0 评论 -
QT---之QDataStream的构造函数使用QByteArray对象注意事项
QDataStream 的构造函数关于使用QByteArray对象的注意事项//先上测试代码:#include <QDataStream>#include <QByteArray>#include <QFile>int main(){ QByteArray dstByteArray; QString str...转载 2018-10-17 13:17:25 · 1255 阅读 · 0 评论 -
QT---之QByteArray关于十六进制赋值详解
本文章主要总结QByteArray类的用法,主要是总结如何给QByteArray的对象赋值十六进制数和显示该十六进制数以及十六进制数在QByteArray中的存储形式,具体的实例如下所述:(字符表示的十六进制数:'\xFF')(Qt中QByteArray存储的十六进制数是0xff,实际是以ascll码存储的,存储形式为'\xff'【\是转码标识】,所以如果需要比较的话,需要用array.at(...转载 2018-10-12 15:30:13 · 15205 阅读 · 2 评论 -
QT---之QTranslator【界面语言翻译】及QT-Linguist的用法
QTranslator类就是使用Qt的翻译文件,可以对界面中菜单栏、label、对话框等进行翻译。使用的前提是,开发者要自己创建翻译文 。 (一)QT项目实现多语言,必须做两件事: 1)确保每一个用户可见的字符串都使用了tr()函数。 2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm)。tr() 的用法: ...转载 2018-09-21 16:13:12 · 16113 阅读 · 0 评论 -
QT---之 QString 与QLatin1String的关系
一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了。吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的。真的么...(本文范围:Qt4)字符串比较如果翻看Qt的源码,或者Qt的(正规一点)第三方库,我们很少看到这种代码://QString myStringif (myString == "d...转载 2018-09-21 14:31:19 · 6508 阅读 · 0 评论 -
QT---之高效使用QLatin1String,QStringRef,QString::reserve,QString::squeeze,QStringBuilder,QStringMatc
本文解释了QString相关的各个类的用途。QLatin1String:避免操作符 "==" 中隐含的 malloc从C字符串创建一个QString可能会涉及到malloc。举例来说,下面的代码可能会有一个隐式malloc调用的代价。 if (fruit == "apple") { ... } // possibly hidden mallocQString 为C字符串提供了重...转载 2018-09-21 10:58:23 · 2969 阅读 · 0 评论 -
QT---之QLocal概念
基于Qt进行国际化功能的开发,主要问题是要搞清楚Locale这个概念。 Locale的概念在计算机技术中,Locale是一个参数集,用于定义用户语言、国家(或地区)以及其他在用户界面中可见的与语言和国家相关的特性,比如日期表示、货币表示等。为了分别不同Locale,一个Locale对象会有一个ID来表示它,这个ID至少包括语言ID和地区ID。在POSIX系统中,Locale ID的表示...转载 2018-09-21 10:37:02 · 2010 阅读 · 0 评论 -
QT---之QTcpSocket的实用
QTcpSocket类的方法connectToHost会泄露内存,即使把调用这个方法的QTcpSocket实例delete掉,内存也不会释放!反复connectToHost会导致段错误,十分危险。必须控制connectToHost的使用次数! 连接服务器 m_tcpSocket->connectToHost(“127.0.0.1”, 9877); connected = m_t...转载 2018-10-11 11:18:49 · 1015 阅读 · 0 评论 -
QT---之QApplication的解释
1、QApplicationQApplication类管理GUI程序的控制流和主要设置,是基于QWidget的,为此特化了QGuiApplication的一些功能,处理QWidget特有的初始化和结束收尾工作。 对于使用了Qt的任何GUI程序来说,不管何时何地有多少个Window,但只有一个QApplication对象,如果不是基于QWidget的程序,相应的则使用QGuiApplicati...转载 2018-09-20 20:55:16 · 951 阅读 · 0 评论 -
QT---之Q_D与d指针1
一、Q_D的在文件中的提法 Q_D的设置意在方便地获取私有类指针,文件为qglobal.h。下面的##是宏定义的连字符。假设类名是A,那么A##Private翻译过来就是APrivate。1 #define Q_D(Class) Class##Private * const d = d_func() d_func()函数如下实现:1 #define Q_DECLARE_PR...转载 2018-10-17 21:52:33 · 829 阅读 · 0 评论 -
QT-----之pro
简述使用Qt的时候,我们经常会对pro进行一系列繁琐的配置,为方便大家理解、查找,现将常用的配置进行整理。| 版权声明:一去、二三里,未经博主允许不得转载。配置注释以“#”开始,到这一行结束。快捷键:Ctrl + /CONFIG指定编译器选项和项目配置,值由qmake内部识别并具有特殊意义。以下配置值控制编译标志:选项 说明release ...原创 2019-09-26 16:46:15 · 202 阅读 · 0 评论 -
QT---之UI简介
QT提供了设计师工具,可以很方便的使用鼠标拖拽的方式绘制界面。绘制完毕后自动生成一个界面的.h文件(如ui_mainwindow.h),其中含有一个自动生成的Ui_MainWindow类,这个类中核心的函数是setupUi,根据界面向导的不同里面接收一个QWidget *参数或者QMainWindow *参数。这个函数会自动在传入的QWidget或QMainWindow上根据设计师绘制的界面创建可...转载 2018-10-09 20:48:31 · 2642 阅读 · 0 评论 -
Qt ---之 QHostAddress讲解
简述QHostAddress类提供一个IP地址。这个类提供一种独立于平台和协议的方式来保存IPv4和IPv6地址。QHostAddress通常与QTcpSocket、QTcpServer、QUdpSocket一起使用,来连接到主机或建立一个服务器。可以通过setAddress()来设置一个主机地址,使用toIPv4Address()、toIPv6Address()或toString...转载 2018-10-09 19:33:33 · 11488 阅读 · 0 评论 -
QT---之QString的arg()方法的使用
Qt QString的arg()方法的使用(一)Qt QString的arg()方法的使用,英文太差了,帮助文档没看懂,百度一下,有需要的朋友可以参考下。(下面两种方法是比较常用的) 1、QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如QString m = ...转载 2018-10-09 19:19:31 · 2141 阅读 · 0 评论 -
QT---之QApplication与图形界面的联系
QApplication是程序,MainWindow是窗口,一个程序可以有多个从窗口。它的主要作用是: 1. QApplication通过exec()函数与MainWindow建立连接,而exec()函数里是 通过调用底层的QCoreApplication,QEventLoop与QGuiApplication类与MainWindow建立联系,可能是因为前者使用MainWin...转载 2018-10-09 17:19:36 · 2045 阅读 · 0 评论 -
QT---之Q_D和d指针概念2
Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念。那么为什么d指针能实现二进制兼容呢?为了回答这个问题,首先弄清楚什么是二进制兼容?所谓二进制兼容动态库,指的是一个在老版本库下运行的程序,在不经过编译的情况下,仍然能够在新的版本库下运行;需要经过编译才能在新版本下运行,而不需要修改该程序源代码,我们就说该动态库是源代码兼容的。要使一个dll能达到二进制兼容,对于一个结构,对于一个对象...转载 2018-10-18 20:41:50 · 7793 阅读 · 1 评论 -
QT---Q_D和d指针的概念1
Qt中的Q_D宏和d指针1 _ZTS7QObject 一、Q_D的在文件中的提法 Q_D的设置意在方便地获取私有类指针,文件为qglobal.h。下面的##是宏定义的连字符。假设类名是A,那么A##Private翻译过来就是APrivate。1 #define Q_D(Class) Class##Private * const d = d_func() d_func...转载 2018-10-18 20:14:17 · 931 阅读 · 0 评论 -
QT---之UI简介
1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀。通常情况下ui是一个指向这个界面类的指针。ui-> 一般就是用来访问这个界面类里面的控件。例如你的ui文件里有一个叫okButton的QPushButton。你就可以这样来访问这个按钮ui->okButton。setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,...转载 2018-10-08 13:38:41 · 1345 阅读 · 1 评论