- 博客(44)
- 资源 (58)
- 收藏
- 关注
原创 Qt工作笔记-QHash与QMap查找速度粗略比较实战
因为工作需要,要大量用到查找,关于查找,在Qt中比较常用的就两个,一个QHash,一个QMap,关于谁快,谁慢,官方已经给出了答案但我们来实战下,因为时间复杂度的多少,在真实运行情况下有的时候,差距并不是特别大。影响速度的条件有很多,其中就有数据量少,但这仅仅是其中的一个。下面的实验是从15万的数据中,查找指定的9999条数据,看看谁快!下面是初始化运行:一种是找到指定数据后,输出,的情况(模拟项...
2018-06-29 16:18:18 8629
原创 C++工作笔记-根据父类指针获取子类类型(或不同的对象)
程序运行截图如下:解决此问题的关键是:父类用一个虚函数返回一个值。每个子类通过对这个值设置不同的数据。从而判断不同的类,或不同的对象;代码如下:#include <iostream>#include <vector>using namespace std;#define ImpleType 0#define ApiType 1class Base{publi...
2018-06-29 14:45:00 10552 1
原创 Qt学习笔记-编写简易的音乐播放器
程序运行截图如下: 再次添加一个音乐并播放: 代码如下:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QModelIndex>class QThread;class QTreeWidgetItem;class QMediaPlayer;nam...
2018-06-29 11:04:35 7504 4
原创 Qt工作笔记-树图结构的2种方式,实现右键菜单
程序运行截图如下: 一种是使用setContextMenuPolicy然后使用信号和槽关联。 一种是重写void contextMenuEvent(QContextMenuEvent *event);程序结构如下图: 代码如下图: mytreeview.h#ifndef MYTREEVIEW_H#define MYTREEVIEW_H#include <QT...
2018-06-27 10:12:55 4476 1
原创 反汇编基础-数组和指针的反汇编代码分析
程序源码如下:#include <stdio.h>int main(){ const char c = 'A'; char str[] = "Hello World!"; str[0] = c; str[1] = 'B'; str[2] = 'C'; str[3] = 'D'; str[4] = 'E'; char *p_str = new char[5]; ...
2018-06-27 09:42:20 4905 1
原创 设计模式工作笔记-简单工厂场景与实现(针对接口编程的设计思想)
简单工厂:通过接口的方式,把实现和变化隔离接口编程:是一种特殊的抽象类,是一个纯虚类。通常接口来定义类的外部,就相当于一份契约,其实就是根据外部应用需要的功能,约定了实现类应该要实现的功能。软件开发中永恒的主题是“变化”,接口的最重要的一个设计语义就是封装变化,也就是隔离变化(内部实现对外部是透明的)。从软件的整体结构上来看,只要接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更加灵活,...
2018-06-27 09:14:07 4013 1
原创 C++工作笔记-设计普通类的格式,实现简单工厂中接口的定义
运行截图如下:(然并卵)代码如下:#include <iostream>#include <string>using namespace std;class Api{public: virtual void print(string data) = 0;protected: Api(){ //屏蔽构造函数,提醒接口的定义 cout << "A...
2018-06-27 08:51:45 3872 1
原创 Qt工作笔记-对QItemDelegate自定义委托的理解
关键是重写这四个函数:QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor, const QModelIndex &index) cons...
2018-06-26 17:05:43 5497
原创 C++工作笔记-对static_cast的进一步认识(强制转换改变内存,并且删除存在的问题)
static_cast关键字(编译时类型检查)代码如下:#include <iostream>using namespace std; class Base{public : Base(const int baseData){ m_baseData = baseData; } void print()const{ cout << "m_baseData...
2018-06-26 14:23:21 4580
原创 C++工作笔记-对const_cast的理解
先上代码:#include <iostream>using namespace std; class MyClass{public : MyClass(const int data = 0){ m_data = data; } void print()const{ cout << "The data is " << m_data <&...
2018-06-26 11:16:51 4037
原创 Qt工作笔记-自定义模型【继承QAbstractTableModel】
程序运行截图如下:代码如下:mymodel.h#ifndef MYMODEL_H#define MYMODEL_H#include <QAbstractTableModel>#include <QVector>#include <QMap>#include <QStringList>class MyModel:public QAbs...
2018-06-26 10:22:01 7190 1
原创 Qt工作笔记-QGraphicsScene练习【Qt图形框架练习】
程序运行如下图所示:程序结构如下:代码如下:directitem.h#ifndef DIRECTITEM_H#define DIRECTITEM_H#include <QObject>#include <QPoint>#include <QGraphicsItem>#include <QPixmap>#define Direction...
2018-06-25 15:43:05 11170 2
原创 C++工作笔记-getter/setter方法中大佬的风格
今天看了Qt官方文档,发现大佬都是这样写代码的,用更新了我对编码风格的认识,代码如下:#include <cstdio>class MyClass{public : int getData() const{ return m_data; } void setData(const int data){ m_data = data; }private: int m...
2018-06-25 09:48:01 8293 2
原创 设计模式工作笔记-UML和设计模式导论
UML类图:类与类图:1、类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称;2、在系统中,每个类具有一定的职责(要完成什么样的功能),一个类可以有多个职责,设计得好的类只有一个职责,将类的职责分解成为类的属性和操作。3、类的属性及类的数据职责,类的操作即类的行为职责。类之间的关系:关联关系(一个类和另外一个类的关联)1.关联关系(Association)是...
2018-06-24 23:02:02 3889 1
原创 反汇编基础-数据类型以及C++引用、指针反汇编后的概括
反汇编中的数据类型在汇编中,无论是字符串类型,整数类型还是其他类型都只有2个关键单位,地址、长度【注意:LEA为取地址指令】引用和指针的汇编代码:引用并不会影响程序的执行效率,使用引用又比指针多了编译器的检测所以在编写C++程序时应该抛弃指针,拥抱引用。const为编译期检查下面先来看一个C++源码:#include <stdio.h>int main(){ char *p_s...
2018-06-24 21:32:11 4352 1
原创 反汇编基础-寄存器及内存
反汇编基础-寄存器及内存PC机中4大存储单元1.硬盘:长时间大量存储数据,因为硬盘速度慢,在程序运行时就将硬盘中的数据加载到内存中。2.内存:内存的存储速度比硬盘快,但还是没CPU快。3.高速缓存:保证CPU的速递,就在CPU中加入了高速缓存,对CPU中的数据进行预读,如果CPU下次运算需要的数据正好在高速缓存中,叫catch命中,否则为catch未命中,需要高速缓存又读取一次,高速缓存一般不需要...
2018-06-21 23:03:20 4937 1
原创 Qt学习笔记-QSqlModel的事物操作
程序运行截图如下:代码如下:connection.h#ifndef CONNECTION_H#define CONNECTION_H#include <QMessageBox>#include <QSqlDatabase>#include <QSqlQuery>static bool createConnection(){ QSqlData...
2018-06-21 17:23:38 4863 1
原创 C++工作笔记-Windows下查找窗口句柄并让其显示在桌面
程序运行截图如下:此处分2种情况,1.句柄处于最小化,2.句柄处于非最小化。代码如下:#include <windows.h>#include <iostream>using namespace std;int main(){ HWND hWnd = FindWindow(NULL, L"Qt 助手"); if (IsIconic(hWnd)){ cout...
2018-06-21 13:53:50 8279 1
原创 Qt学习笔记-SQL的基本操作【创建、查询、添加、索引等】
程序运行截图如下:代码如下:connection.h#ifndef CONNECTION_H#define CONNECTION_H#include <QMessageBox>#include <QSqlQuery>#include <QSqlQuery>#include <QSqlDatabase>static bool creat...
2018-06-20 22:53:22 6564 1
原创 Qt工作笔记-在QTreeView上实现模型数据的拖拽
运行截图如下:逻辑是:1.QTreeView开发拖拽功能。2.在自定义模型中重写flags(const QModelIndex &index) constmimeData(const QModelIndexList &indexes) const实现拖的功能3.在自定义模型中重写dropMimeData(const QMimeData *data, Qt::DropAction a...
2018-06-19 19:04:58 14689 9
原创 Qt工作笔记-MineData相关基本操作
QMimeData类提为数据提供一个容器,用来记录关于MIME类型数据的信息QMimeData常用来描述保存在剪切板里信息,或者拖拽原理QMimeData对象把它所保存的信息和正确的MIME类型连接起来来保证信息可以被安全的在应用程序之间转移,或者在同一个应用程序之间拷贝QMimeData对象通产雇佣new来创建,并且支持QDrag和QClipboard对象,这可以使QT管理他们所使用的内存单一的...
2018-06-19 11:30:41 4807 1
原创 Qt工作笔记-QVector与QMap查找效率实战
因为项目使用QVector,太慢了,听说QMap比QVector查找时快,所以写一个小程序试试;从30000个数据中找5000个程序运行截图如下:代码如下图:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QVector>#include <QMap>names...
2018-06-14 23:53:43 11119 2
原创 Qt工作笔记-视图/模型以及过滤代理模型的使用
程序运行截图如下:代码如下:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>class QSortFilterProxyModel;class QDataWidgetMapper;class QStandardItemModel;namespace Ui {class Widget;}clas...
2018-06-14 09:03:13 5021 1
原创 Qt工作笔记-QFileSystemModel创建文件系统信息模型
程序运行界面如下:总结下他的逻辑步骤:1.实例化一个模型;2.设置模型的根路径(要监视的路径);3.为视图指定索引;4.最后指定根索引;代码如下:#include <QApplication>#include <QFileSystemModel>#include <QTreeView>#include <QListView>#include ...
2018-06-13 07:42:52 4820
转载 QML与C++混合编程详解
转载地址:https://www.cnblogs.com/findumars/p/6090850.html1、QML与C++为什么要混合编程QML与C++为什么要混合编程,简单来说,就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法,下面介绍了两者间交互的方法与技巧。2、QML访问C++概述Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下...
2018-06-11 16:47:47 4487 1
转载 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
一 闲谈: 熟悉Window下编程的小伙伴们,对其消息机制并不陌生, 话说:一切皆消息。它可以很方便实现不同窗体之间的通信,然而MFC库将很多底层的消息都屏蔽了,尽管使用户更加方便、简易地处理消息,但也让人特别是没有Win32编程基的人感到迷茫,不是为何,笔者也是深受其害的。 详细描述就不在此展开,感兴趣的请查阅浩瀚如海的资料。。。二 简要介绍: 基于Qt...
2018-06-11 15:55:23 5899
转载 Qt工作笔记-Qt元对象系统解析【2合1】
博文转载地址:https://blog.csdn.net/spwper/article/details/51332187说Qt信号与槽是一个很好机制,不如说Qt的元对象系统很强大。这也是大家讲Qt就必须将信号与槽,讲信号与槽就要讲Qt的元对象系统。当然初学者知道怎么用就OK啦,当然随着你写的代码越多,接触的平台越多的时候,你就会好奇Qt是如何把两个(多个)任意不相关(必须都继承与QObject)的...
2018-06-11 15:47:53 4981 1
转载 Qt工作笔记-对qmake的认识【两篇转载结合】
关于qmake其实可以使用qmake生成各种类型编译器的文件。比如下面的这一条命令:qmake -tp vc XXXXXXXX.pro -spec win32-msvcXXXX 如msvc2010下面是转载的:原文地址:https://blog.csdn.net/linear_luo/article/details/52385933 qmake生成的vs工程与环境变量中的 QMAKESPEC相关...
2018-06-11 15:18:24 4521 2
原创 Qt工作笔记-第一个QML(QQuickView显示QML文件)
程序运行截图如下:程序结构如下:代码如下:main.cpp#include <QApplication>#include <QDir>#include <QQuickView>#include <QUrl>#include <QQmlEngine>int main(int argc, char *argv[]){ Q...
2018-06-11 10:54:34 4658 4
原创 Qt工作笔记-仿大佬风格代码(使用#ifdef Q_OS_WIN32)
程序运行截图如下:代码如下:#include <QApplication>#include <QDebug>int main(int argc, char *argv[]){ QApplication a(argc, argv);#ifdef Q_OS_WIN32 qDebug()<<"这个是Windows操作系统!"; QS...
2018-06-11 09:49:44 10338 5
原创 Qt学习笔记-带TCP数据传输的局域网聊天软件
程序运行截图如下:然后选择一个文件,进行传输。程序结构如下:代码如下:tcpreceiver.h#ifndef TCPRECEIVER_H#define TCPRECEIVER_H#include <QWidget>#include <QAbstractSocket>#include <QTcpServer>class QTcpSocket;cla...
2018-06-10 11:09:37 4823 2
原创 TCP/IP学习笔记-Qt中的ReuseAddressHint以及SO_REUSEADDR,以为组播常用场景分析
最近在看一个局域网聊天的源码(Qt做的)发现大佬用了这样的代码:udpSocket->bind(port, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);根据文档可以知道这个ShareAddress,允许其他的服务(进程)去绑定这个IP和端口,而这个ReuseAddressHint为失败后立即使用他与SO_REUSEADDR...
2018-06-10 00:14:58 10045 1
原创 Qt学习笔记-Qt实现文件传输功能(基于TCP)【客户端传给服务器】
程序运行截图如下:在服务端程序的目录下就可看见发送的程序。程序结构如下图所示:源码如下:客户端:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QAbstractSocket>class QTcpSocket;class QFile;namespace Ui {clas...
2018-06-09 21:05:58 37986 39
原创 Qt工作笔记-QCustomplot绘制表,实现输入定位功能
运行截图如下:文件结构图如下:代码如下:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QVector>#include "qcustomplot.h"namespace Ui {class Widget;}class Widget : public QWidget...
2018-06-09 10:42:23 5203
原创 Qt工作笔记-获取选中的文件名(lastIndexOf的使用)
运行截图如下:代码如下:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *pare...
2018-06-07 23:08:25 7268 4
原创 Qt工作笔记-可拖动大小的QListWidget(使用QDockWidget)【QMainWindow与QWidget中的天坑】
本次基本上没有代码,全是用designer搞出来的。QMainWindow设计图如下:程序运行截图如下:而使用QWidget呢。界面如下:此处的QDock是不能拖动的,在此不再用动态图演示...
2018-06-07 16:26:42 5386 4
原创 Qt工作笔记-可拖动大小的QListWidget(自定义控件方式)
运行截图如下:代码如下:mylistwidget.h#ifndef MYLISTWIDGET_H#define MYLISTWIDGET_H#include <QObject>#include <QListWidget>class MyListWidget : public QListWidget{ Q_OBJECTpublic: MyLis...
2018-06-07 15:29:22 7434 8
原创 Qt学习笔记-简单的TCP程序
运行截图如下:代码如下:客户端:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QAbstractSocket>class QTcpSocket;namespace Ui {class Widget;}class Widget : public QWidget{...
2018-06-06 22:51:22 4290 1
原创 Qt工作笔记-对QXmlStreamWriter进一步的认识(写复杂的XML文件)
本程序已经极度精简了,运行截图如下:代码如下:#include <QApplication>#include <QXmlStreamWriter>#include <QDebug>#include <QFile>int main(int argc, char *argv[]){ QApplication a(argc, argv)...
2018-06-06 22:03:17 6975 5
转载 套接字中缓冲区
原博文地址:https://www.cnblogs.com/justkong/p/7657363.html套接字中缓冲区1、MTU(Maximum Transmission Unit)最大传输单元,在数据链路层中,往往规定了MTU大小,IP层的数据包通过数据链路层如果大于MTU,将被分片,到达接收端IP层后再被重组。以太网的MTU为1500字节。2、MSS(Maximum Segment Size...
2018-06-05 09:41:14 5538 2
Qt文本转化工具 realase版本
2019-01-19
Qt文件编码转换工具源码
2019-01-19
libX11生成libX11-xcb.so.1
2018-11-13
基于RFID门禁系统源码 ,C/C++
2017-09-10
Qt+Opencv-PCA人脸识别+视频
2017-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人