自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (3)
  • 收藏
  • 关注

原创 ffmpeg-qt音视频开发简单入门

ffmpeg+qt简单入门,视频播放器实现音视频同步

2022-10-15 22:04:58 778

原创 vlc-qt简单入门

vlc-qt简单入门

2022-10-12 16:10:01 1506

原创 设计模式简单解析

简单分析部分设计模式

2022-10-10 18:51:10 358

原创 C++写一个信号槽

C++仿写QT信号槽(简化版)

2022-05-25 22:48:26 495

原创 QT Model/View结合模板创建Tree

不同的数据结构体共用一份Model/View/*@data.h@*/#pragma once#include <QSharedPointer>#include <QVariant>#include <QList>#include <QMap>template<class CT>class AbstractMember{public: typedef QSharedPointer<AbstractMember<CT&

2021-01-09 20:04:38 287 3

原创 QT Model/View结合模板创建Table

/不同的数据结构体共用一份Model/View/@TableField.h@#pragma once#include <QSharedPointer>#include <QMap>#include <QVariant>#include <QString>template<class CT>class Memeber{public: typedef QSharedPointer<Member<CT>&gt

2021-01-09 19:59:46 266

原创 QT启动外部进程并隐藏界面

QString program = QStringLiteral("··/Test/test.exe");STARTUPINFO si={sizeof(si)};PROCESS_INFORMATION pi;si.dwFlags= STARTF_USESHOWWINDOW|STARTF_USESTDANDLES;si.wShowWindow =false;CreateProcess(NULL,(LPWSTR)program.toStdWString().c_str(),NULL,NULL,FALS

2020-12-29 11:33:39 3495 2

原创 QT自定义控件-经纬度输入框

原文CoordinateEdit.h#pragma once#include <QWidget>#include <QEvent>class QLineEdit;class QLabel;class CoordinateEdit : public QWidget{ Q_OBJECTpublic: enum Type { Type_Longitude, Type_Lagitude }; CoordinateEdit(Type type = Type

2020-10-21 23:37:20 1948

原创 QGraphicsView简单使用

自定义Item,点// cgraphicsitem.h#ifndef CGRAPHICSITEM_H#define CGRAPHICSITEM_H#include <QGraphicsItem>#include <QGraphicsSceneMouseEvent>class CGraphicsItem : public QGraphicsItem{public: CGraphicsItem(QPointF p,QGraphicsItem* parent =

2020-10-11 21:32:05 3223 1

原创 QGraphicsView重写paint事件实现实时画图显示

场景类cgraphicsscene.h#ifndef CGRAPHICSSCENE_H#define CGRAPHICSSCENE_H#include <QGraphicsScene>#include <QGraphicsPathItem>#include <QList>#include "cgraphicsview.h"class CGraphicsScene : public QGraphicsScene{ Q_OBJECTpublic:

2020-10-09 23:16:28 4645 4

原创 MFC不使用资源文件创建对话框

转自MFC不使用对话框资源模版创建对话框#pragma once#define DLG_TEMPLATE_BUFFER_MAX_LENGT 1024class CDlgTemplate{public: CDlgTemplate(int nBufferLength=DLG_TEMPLATE_BUFFER_MAX_LENGT); ~CDlgTemplate();private: WORD* m_pBuffer;public: DLGTEMPLATE* CreateTemplate(D

2020-09-29 19:04:38 876

原创 MFC和QT混合编译

所需文件支持Qt5的qtwinmigrate,下载地址:https://github.com/qtproject/qt-solutions需要用到其中的qmfcapp.h qmfcapp.cpp qwinwidget.h qwinwidget.cpp等文件Qt Add-in插件VS新建一个MFC工程,然后卸载项目,右击编辑***.vcxproj工程文件找到以下配置处,添加Keyword字段Qt4VSv1.0,可以新建一个QT工程打开看看值是多少<PropertyGroup Label.

2020-09-24 14:20:58 1606

原创 类的构造析构顺序

构造顺序:先基类,然后成员,再自己构造顺序:类静态成员变量-全局变量-基类-普通类成员变量-自己析构顺序:与构造相反#include <iostream>using namespace std;class A{public: A(){cout << "A()" << endl;} ~A(){cout << "~A()"" << endl;}}class B{public: B(){cout &lt

2020-09-09 11:42:47 1144

原创 sizeof和strlen的简单使用

#include <iostream>using namespace std;void test(char *s){ cout << s << endl; cout << strlen(s) << endl; cout << sizeof(s) << endl; cout << (void*)s << endl; cout << (void*)

2020-09-09 11:09:07 129

原创 CList取消选中状态

m_clist.SetItemState(-1,0,LVIS_SELECTED);m_clist.SetSelectionMark(-1);//防止GetSelectionMark()返回0

2020-09-09 09:12:45 204

原创 MFC让对话框屏幕居中显示

重载OnInitDialog()函数,在其中添加代码CenterWindow();

2020-09-09 08:52:17 2535 1

原创 QWidget设置模态属性

方式一:setAttribute(Qt::WA_WindowModified,true);方式二:// 窗口对整个程序阻塞setWindowModality(Qt::ApplicationModal);// 窗口对父窗口阻塞setWindowModality(Qt::WindowModal);上述方式只能实现半模态,即窗口阻塞了,但是代码还会继续运行当需要窗口关闭时获取窗口的某个值去执行条件语句的代码时,是需要模态对话框那种效果的。即窗口阻塞,代码也被阻塞。办法:QWidget *wid

2020-09-05 20:16:17 1101

原创 QWidget子窗口适应父窗口大小

问题:QWidget的两个窗口使用了布局之后,各自窗口的控件可以适应大小变化,但是两个窗口合并后,父窗口变化而子窗口不会变窗口1:Widget1,窗口2:Widget2,二者都进行了界面布局窗口1中有一个widget_1,现将Widget2的父窗口设为widget_1使用Widget2->setParent(widget_1)后,Widget2无法适应Widget1大小变化解决:QHBoxLayout *layout = new QHBoxLayout(this);ui.widget_

2020-08-23 14:41:30 9120

原创 QSettings的简单使用

读取dllset.ini[CNT]size = 4[DLL]id/1/name = dll1id/2/name = dll2id/3/name = dll3id/4/name = dll4QString dir = QCoreApplication::applicationDirPath();qDebug() << dir;QSettings set(dir+"/dllset.ini", QSettings::IniFormat);int size = set.val

2020-08-18 23:16:12 296 3

原创 QT简单调用cmd命令

例子1ping其他主机,判断是否开机// -w控制 超时时间// ping命令设置了超时时间后,ping不通代语句执行失败返回1,否则返回0int ret = QProcess::execute("ping 192.168.1.107 -w 1");例子2获取进程是否存活//用上述例子的方法发现无法使用管道符号// /fo csv的作用是当进程软件名太长时,查出来可能显示不全,此时用此命令即可解决QProcess p(0);p.start("cmd",QStringList().

2020-08-06 20:06:59 1876

原创 QT5的connect方式利用指针识别信号重载函数

QTcpSocket *socket = new QTcpSocket; socket->bind(23333); // QTcpSocket有一个含参数的error信号,有一个无参数的error函数 // 如果用QT5中connect的写法,需要用到函数指针 void (QTcpSocket::*p)(QAbstractSocket::SocketError) = &QTcpSocket::error; connect(socket, p, [=](QAbstractSocket.

2020-08-05 23:04:36 752

原创 QT存放结构体数据在动态内存中

方式一 Data d1,d2; d1.a = "aaa"; d1.b = "bbb"; d1.c = 3; d1.d = 3.3; d2.a = "ccc"; d2.b = "ddd"; d2.c = 4; d2.d = 4.4; // 申请空间 char *p = (char*)malloc(sizeof(Data)); // 将数据复制进空间 memcpy(p,&d1,sizeof(Data)).

2020-07-22 20:17:00 1048

原创 QT序列化通过文件存取结构体数据

结构体struct Data{QString a;QString b;int c;QDateTime d;};

2020-07-20 19:39:47 2885 3

原创 QT连接SQL Server以及MySql

问题1:连接SQL Server时,使用如下方式方式1 m_db = QSqlDatabase::addDatabase("QODBC"); m_db.setHostName("localhost"); m_db.setDatabaseName("Learn"); m_db.setUserName("sa"); m_db.setPassword("123456");报错: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动

2020-07-18 19:53:25 699 3

原创 QFile的简单使用

打开文件可以使用C中的文本流fopen或者open等方式// 以"w"方式每次打开都会清空,如果不想清空可以使用"a"或"a+"FILE *test = fopen("test.txt","w+"); if(test) QTextStream textS(test,QIODevice::WriteOnly);在QT中当然还是使用自己的接口方便 QFile file; file.setFileName("test.txt"); // 如果想每次打卡清空加上|QIODevice::Trunca

2020-06-08 22:45:47 1641

原创 C++基类加virtual的作用

class MyBase{public: MyBase(){cout << "MyBase" << endl;} ~MyBase(){cout << "~MyBase" << endl;}};class MyA : public MyBase{public: MyA(){cout << "MyA" << endl;} ~MyA(){cout << "~MyA" << e

2020-06-07 22:35:43 661

原创 QTreeView创建树结构(二)

本例在QTreeView创建树结构(一)两层树结构的基础上,创建三层树结构mymode.h还是那个model#ifndef MYMODEL_H#define MYMODEL_H#include <QAbstractItemModel>struct Water{ QString name; QString prace; QString weight;};struct MyItem{ int level; bool checked;.

2020-06-05 23:26:40 623

原创 QTreeView创建树结构(一)

参考如何使用QAbstractItemModel定制自己想要的数据模型mymodel.h#ifndef MYMODEL_H#define MYMODEL_H#include <QAbstractItemModel>struct Water{ QString n; QString w;};struct MyItem{ bool checked; //是否选中 int level;//0,1,2 Water data; QList&

2020-06-03 00:09:45 1052

原创 QT Model/View 结合类模板的简单应用

表格第一列是可选框,可点击,其他列仅展示内容数据类有两种结构体,用这些结构体填充表格的表头和内容两种表格用同一个model代码,简单示例数据类#pragma once#include <QString>struct Water{ int number; QString weight; QString use; QString level; inline static QVariant getValue(int col, const Water &water).

2020-05-31 17:42:05 283

原创 QT类模板和类模板的特化

//当结构体为struct FireData{ QString type; struct Group { int no; QString a; QString b; QString c; }; QList<Group> groups;};class MyData{public: MyData() {} ~MyData() {} FireData m_data; QString getValue(int col) { if (col == 0

2020-05-26 23:43:43 1130

原创 QSharedPointer的用法

用多态的方法让QList存储多种类型的数据这里以QTableWidget提升类为例,多个QTableWidget同时提升为MyTable,MyTable中就需要判断存储相应的类型数据MyData.h [table数据结构体类]#pragma once#include <QString>#include <QDateTime>#include <QSharedPointer>#include <QDebug>struct FireData{.

2020-05-25 23:07:22 5847 3

原创 QT控件通过setProperty设置属性显示内容

QLineEdit设置其text属性QLineEdit *edit = new QLineEdit(this);edit->setProperty("text","hello");QPlainTextEdit设置其plainText属性QPlainTextEdit *edit = new QPlainTextEdit(this);edit->setProperty("plainText","hello");QTextEditQTextEdit *edit = n.

2020-05-24 23:02:25 4616 2

原创 QT读取json文件

QT本身就有读取json的接口,简单又方便json文件注意:json中含有中文,文件编码格式应保存为UTF-8,其他编码可能中文读取不出来,json中如果有字段值是bool类型,直接填true/false就好了{"scale":10.0,"table1":[{"t":1,"h":"第一列","f":true},{"t":2,"h":"第二列","f":true},{"t":3,"h":"第三列","f":false},{"t":4,"h":"第四列","f":true},],"tabl

2020-05-21 14:11:16 4393

原创 C++中访问类成员变量的几种方式

例子#include <iostream>using namespace srd;class test{public: int a; double b; string c;};int main(){ test t; //第一种,这种方式原理未知 int test::*p = &test::a; double test::*q = &test::b; string test::*m = &te

2020-05-21 10:22:25 7844

原创 QTableWidget自定义提升类管理多个表格显示

mytable.h#ifndef MYTABLE_H#define MYTABLE_H#include <QTableWidget>#include "widget.h"#include <QTableWidgetItem>class MyTable : public QTableWidget{public: MyTable(QWidget *parent = nullptr); ~MyTable(); void SetType(PageId

2020-05-12 00:03:33 973

原创 QT学习记录-QT发送自定义事件

CustomEvent文件#ifndef CUSTOMEVENT_H#define CUSTOMEVENT_H#include <QEvent>#include <QString>class CustomEvent : public QEvent{ public: const static Type TYPE = static_cast<Type>(QEvent::User+0x10); explicit CustomEvent(QStri

2020-05-10 20:18:42 233

原创 C++ 模拟智能指针

参考:C++智能指针——探究六个常见的智能指针的使用及原理模仿C++STL中share_ptr智能指针将普通指针存在一个类中,类随着作用域的结束,在析构函数中释放指针,所以这个类需要是放在栈区,离开作用域后自动执行析构类中有一个计数器,防止普通指针被多个类管理,多次释放造成程序崩溃普通指针只有一个,在多个智能指针之间传递地址,计数器也需要是指针,在多个智能指针之间传递地址,所以他们在多个智能指针对象中始终是一个#include <iostream>using namespace

2020-05-10 16:02:48 225

原创 C++的try_catch抛出异常

#include <iostream>#include <vector>using namespace std;void test(){ int a[5]; for (int i=0; i<=6; i++) { if(i>=5){ throw runtime_error("out of range"); } a[i] = 10; }}int main()

2020-05-10 14:07:56 250

原创 QChart画折线图坐标不准的问题

坐标不准主要是因为坐标轴值范围平分的不够均匀QValueAxis *axisx = new QValueAxis; //创建X轴值序列axisX->setRange(0,15);//设置X轴值范围为0-15axisX->setLabelFormat("%u");axisX->setGridLineVisible(true);//显示坐标轴的网格线,便于观察axisX-&...

2020-04-30 10:21:29 2424 2

原创 MFC CDateTimeCtrl使用注意事项

CDateTimeCtrl控件的属性format可以设置短日期(只显示年月日)、时间(只显示时分秒)//当只显示年月日时SYSTEMTIME stime;//此时获取的stime年月日都是控件本身设置显示的时间//但是stime的时分秒等并不是控制,而是计算机此时的时分秒GetTime(&stime);//当只显示时分秒同理//stime的时分秒为控件的值,而年月日时计算机的...

2020-04-27 15:34:45 1114

ffmpeg-qt-音视频同步demo

ffmpeg-qt-视频播放器小demo,已简单实现音视频同步

2022-10-15

MySql可视化工具.zip

MySql的可视化管理工具,体积小功能强,Navicat Premium_11

2020-07-18

QT多线程小例子.zip

环境QT5.7.0 QT多线程两种方式的简单例子:通过线程处理更新ui界面的时间显示 01Thread是QT4的方式,02Thread是QT5的方式,02方式更灵活一些,01更简单快捷

2020-03-15

UDP简单例子.zip

环境VS2013,QT5.7.0, 写的一个VC UDP通信小例子,配合DebugView查看发送过程以及结果

2020-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除