C++、Qt
BillyJue
这个作者很懒,什么都没留下…
展开
-
Linux 获取内存和CPU使用率
Linux 获取内存使用情况及CPU使用率原创 2022-06-17 09:32:35 · 788 阅读 · 2 评论 -
C++ 双队列
双队列 不需要每次都创建对象,可以实现循环利用原创 2022-06-02 15:04:13 · 168 阅读 · 0 评论 -
C 十六进制与char,int相互转换
int 转十六进制int IntToHex(int nValue, char *pHexOut, int nHexLen){ int nTmp = 0; //int 占8*4 bit int nCount = 0; for (int i = 7; i >= 0; i--) { nTmp = ((nValue >> (4 * i)) & 0x0F); if (nTmp >= 10) { pHexOut[nCount] = 'A' + (nTm原创 2022-05-17 15:53:03 · 2854 阅读 · 1 评论 -
QT mac控件封装
#ifndef MAC_CONTROL_H#define MAC_CONTROL_H#include <QFrame>#include <QLineEdit>#include <QIntValidator>#include "stdint.h"#include <QHBoxLayout>#include <QFont>#include <QLabel>#include <QKeyEvent>cla.原创 2022-02-10 19:03:51 · 435 阅读 · 0 评论 -
正则表达式
//获取MAC地址//通过正则表达式来获取数据QString sAdress;int pos = 0;QRegExp rxMac("([0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2})");while ((pos = rxMac.indexIn(sInfo, pos)) != -1){ pos += rxMac.matchedLength(); sAdress = rxMac.cap(0);原创 2021-12-09 10:49:56 · 184 阅读 · 0 评论 -
QT串口通信
//serial_helper.h#ifndef _SERIAL_HELPER_H_#define _SERIAL_HELPER_H_#include <QObject>#include <QSerialPortInfo>#include <QSerialPort>class serial_helper : public QObject{ Q_OBJECTpublic: serial_helper(QObject *parent); int.原创 2021-12-09 10:33:01 · 399 阅读 · 0 评论 -
搭建Mysql,实现远程连接的增删改查
1.安装mysql及配置 下载地址:待补充 安装完成以后,如果其它支持其它电脑远程连接,需要修改如下所示2.QT实现远程的增删改查#ifndef _MANAGER_H_#define _MANAGER_H_#include <QObject>#include <QSqlDatabase>//1字节对齐#pragma pack(push, 1) typedef struct{ char did[64]; char key[1...原创 2021-11-18 11:18:05 · 470 阅读 · 0 评论 -
二进制与base64的转换
#ifndef _BASE64_H_#define _BASE64_H_#include <stdlib.h>#include <string.h>char *base64_decode(const char *bdata, int bdlen);char *base64_encode(const char *data, int dlen);int base64_encode_size(int srclen);int base64_decode_size(i.转载 2021-07-13 09:50:27 · 4681 阅读 · 0 评论 -
C++线程池的实现
//头文件#ifndef MYSELFTHREAD_H#define MYSELFTHREAD_H#include <thread>#include <condition_variable>#include <mutex>#include <vector>typedef struct{ void *pThat; std::condition_variable condit; std::mutex mtx; bool isRunning;原创 2021-04-07 13:41:13 · 192 阅读 · 2 评论 -
自定义标题,可拖动
cpp文件#include "MyTitleWidget.h"MyTitleWidget::MyTitleWidget(QWidget *parent) : QWidget(parent), maxNormal(false), m_parent(nullptr){ ui.setupUi(this); connect(ui.minimizeButton, SIGNAL(clicked()), this, SLOT(Slot_TitleButtonClicked())); connect(ui.原创 2020-12-29 10:55:02 · 85 阅读 · 0 评论 -
QT自定义窗口,可拉伸
//头文件#ifndef CUSTOMDIALOG_H#define CUSTOMDIALOG_H#include <QDialog>// 定义当前鼠标所处状态;enum WindowStretchRectState{ NO_SELECT = 0, // 鼠标未进入下方矩形区域; LEFT_TOP_RECT, // 鼠标在左上角区域; TOP_BORDER, // 鼠标在上转载 2020-12-29 10:23:45 · 2106 阅读 · 2 评论 -
C++文件的序列化
转载于:https://blog.csdn.net/freehyan/article/details/51814336用于记录下序列化(serializtion)是指把对象信息转换成可以存储或者通过网络连接传输格式的过程,然后在本地或者在另一个计算机环境中可以重构出原有的对象信息是指反序列化。前言本文只介绍通过boost serialization存储的优势,先通过例子简单明白。假如现在你是一个学校学生系统管理员,你需要保存学生信息,比如学生学好,名字,年龄。当然最简单的方式是通过C++的文转载 2020-12-10 10:12:22 · 1942 阅读 · 0 评论 -
MuPDF的使用
MuPDF的使用调用流程 获取目录 搜索关键字 调用流程//获取上下文fz_contextcontext = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);if (!context)return;//register the default file typesfz_register_document_han...原创 2020-04-26 16:07:26 · 3910 阅读 · 2 评论 -
C++ jpg内存中绘制图片,字体并以char*的形式输出
1.Gdi的调用链接附加依赖项:gdiplus.lib#include <comdef.h>//(不加这个可能会报错)#include <GdiPlus.h>//开始调用ULONG_PTR g_pGdiToken = NULL;Gdiplus::GdiplusStartupInput g_gdiplus...原创 2019-11-12 15:13:26 · 922 阅读 · 0 评论 -
从数据流读取Jpg的宽高
void ImgTool::GetJPGInfo(unsigned char * buffer, unsigned int length, unsigned int *nWidth, unsigned int*nHeight){ long int width; long int height; unsigned char *temp = buffer + length...转载 2019-10-21 16:51:45 · 743 阅读 · 0 评论 -
QT程序打包发布
windeployqt.exe添加环境变量,方便命令行执行 Qt widget程序打包:从开始菜单打开 Qt 命令行,进入D:\QT\test文件夹:(test里面有存放生成的exe)cd /d G:\Qt\test然后使用 windeployqt 工具命令:windeployqt untitled13.exe会自动拷贝相应的dll文件Qml相关程序的打包在工程中最后加CONFIG += cons...转载 2018-04-14 10:16:25 · 341 阅读 · 0 评论 -
自定义矩形可拖动及宽度大小的改变
//头文件#pragma once#include <QWidget>#include "ui_Dlg_DayTime.h"#include <QPainter>#include <QJsonArray>#include <QPixmap>#include <QMap>#define PADDING 6enum Di...原创 2019-06-26 15:05:31 · 1205 阅读 · 0 评论 -
C++ 可变参数列表的使用
#define PATH_DELIMITER '\\'bool createDirectory(const std::string folder) { std::string folder_builder; std::string sub; sub.reserve(folder.size()); for (auto it = folder.begin(); it...原创 2019-08-23 16:21:36 · 507 阅读 · 0 评论 -
QT自定义IP框
//头文件----------------#ifndef IPCONTROL_H#define IPCONTROL_H#include <QFrame>#include <QLineEdit>#include <QIntValidator>#include "stdint.h"#include <QHBoxLayout>#incl...转载 2019-08-23 16:00:34 · 274 阅读 · 0 评论 -
c++11线程池
//线程池的实现#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <vector>#include <queue>#include <memory>#include <thread>#include <mutex>#include <condition_vari...转载 2019-09-24 11:26:28 · 244 阅读 · 0 评论 -
QT日志的重定向、QSS文件的读写
1.日志的重定向:void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg){ QDateTime current_date_time = QDateTime::currentDateTime(); QString sTime = cur...翻译 2019-09-29 13:43:49 · 123 阅读 · 0 评论 -
自定义标题
//头文件:#include <QMouseEvent>#include <QDialog>class MyTitleWidget : public QWidget{ Q_OBJECTpublic: MyTitleWidget(QWidget *parent = Q_NULLPTR); ~MyTitleWidget(); v...原创 2019-05-29 14:24:48 · 124 阅读 · 0 评论 -
Socket 相关知识
1.非阻塞connect fcntl int flags = Fcntl(sockfd, F_GETFL,0); Fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);//非阻塞2.设置socket为非阻塞模式int ioctlsocket( SOCKET s, //要设置的套接字 long cmd, //FIONBI...转载 2019-06-05 14:21:51 · 164 阅读 · 0 评论 -
QT 时间戳
UTC时间戳 QDateTime time ;time = QDateTime::fromString(strBuffer, "yyyyMMddhhmmsszzz"); time.setTimeSpec(Qt::UTC); long long seconds2 = time.toMSecsSinceEpoch(); // 13位时间戳 int ...转载 2019-01-07 16:31:24 · 3366 阅读 · 0 评论 -
NSIS打包
打开文件新建向导出现如下界面点击下一步,填写信息点击下一步,修改安装程序文件名称点击下一步点击下一步点击下一步点击添加AddDirTree,出现如下界面,选择exe所在目录,并勾选包含子目录确定后下一步,其中XXX为应用程序的名称下一步最后保存编译添加到环境变量; 安装程序初始定义常量下添加如下代码:!def...转载 2019-01-17 10:13:17 · 746 阅读 · 0 评论 -
QObject
翻译 2018-11-07 17:11:41 · 89 阅读 · 0 评论 -
事件过滤器
假如一个界面中有存放两个widget如w1, w2.对w2界面进行鼠标上移下移能操作。第一种方法重写 w2,处理相关的鼠标操作第二种就是事件过滤器, 在eventFilter可能会触发两次,pressed, realse等等w2->installEventFilter(this);bool eventFilter(QObject *object, QEvent *event)...原创 2018-11-07 17:09:16 · 186 阅读 · 0 评论 -
QpushButton添加二级菜单
只为记录--css 样式:QPushButton::pressed{background-color: rgb(46, 119, 182);}QPushButton{font-family:'微软雅黑';font-size:16px;color: rgb(255, 255, 255);background-color: rgb(51, 153, 255);border-radius: 2px;}...原创 2018-06-22 20:12:26 · 876 阅读 · 0 评论 -
打印机
void Print(QPrinterInfo printerInfo){bool bLeft = true;QPrinter printer(printerInfo);printer.setOrientation(QPrinter::Landscape);// 设置打印机参数printer.setPageSize(QPagedPaintDevice::A4);QPainter pa...原创 2019-06-05 09:46:42 · 344 阅读 · 0 评论 -
操作sqlite数据库,使用qsqlqueryModel绑定数据,并实现对数据的修改
看大佬的相关博客发现 QsqlQueryModel只读属性,要让其可编辑要重写flags方法,要让其可修改要重写setData方法具体代码如下:widget构造函数主要实现加载sqlite数据库,如果没有数据库则创建。widget.cpp文件#include "widget.h"#include <QSqlQueryModel>#include <QSqlError>#in...原创 2018-04-14 00:19:03 · 3235 阅读 · 0 评论 -
书本上的QtConcurrent
转载 2018-04-18 18:07:39 · 144 阅读 · 0 评论 -
书本上的Q_OBJECT, MOC讲解
原创 2018-04-18 17:31:51 · 217 阅读 · 0 评论 -
QquickWidget与QML交互 ,自定义信号
在widget加载QML文件 ,在加载过程中把qml文件添加到资源文件,在Pro文件中添加QT += quickwidgetsQt+= qml下面如何qml中的信号连接呢查看QQuickWidget类,找到了rootObject()方法,这个返回的就是QML的对象,这样QML按钮的响应就能在Widget里面接收了,那么Widget如何向QML传递数据呢,目前本人只会通过信号连接信号初始化QML里面...原创 2018-03-15 10:43:45 · 4179 阅读 · 1 评论 -
QTreeWidget存放自定义数据
QTreeWidget双击可编辑的设置:connect(ui.treeWidget_RedLamp, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, SLOT(Slot_TreeRedLampIncreaseWidgetItemClicked(QTreeWidgetItem*, int)));void Slot_TreeRedLamp...转载 2018-03-15 14:31:59 · 8609 阅读 · 0 评论 -
QTreeWidget QLineEdit、QLabel、QCombobox, QCheckBox委托的实现
#pragma once#include <QObject>#include <QItemDelegate>#include <QWidget>#include <QLineEdit>#include <QLabel>#include <QComboBox>#include <QCheckBox>...原创 2019-01-08 19:59:00 · 1162 阅读 · 0 评论 -
QSS样式
QPushButton常用样式QPushButton{color:rgb(255,255,255);background-color:rgb(39, 100, 255);border-radius:4px;opacity: 1.0;}QPushButton:pressed{color:rgb(255, 255, 255);background-co...转载 2019-01-16 16:22:59 · 1230 阅读 · 0 评论 -
VS下编译QtAV
转载自https://blog.csdn.net/lcalqf/article/details/68486722转载 2019-06-05 10:24:25 · 258 阅读 · 0 评论 -
QT自定义无边框
转载自:https://www.cnblogs.com/xufeiyang/p/3313104.html//头文件#ifndef DROPSHADOWWIDGET_H#define DROPSHADOWWIDGET_H#include <QDialog>#include <QWidget>#include <QPainter>#includ...转载 2019-05-28 11:22:56 · 643 阅读 · 0 评论 -
VS依赖项目的配置
新建一个静态库或动态库工程,再新建非静态且非动态的项目,右键属性,弹出如下对话框点击添加新引用(Add New Reference) 弹出如下对话框,勾选所依赖的项目,如下图所示然后引用项目的头文件目录,如果是VC项目的话,在配置属性->VC++目录->包含目录里添加引用项目的头文件,如果是C/C++项目的话,在配置属性->C/C++->常规->附加...原创 2018-11-07 17:03:54 · 4148 阅读 · 0 评论 -
VLC Rtsp视频流的播放及 VLC dll的封装及调用
录像添加的实现:https://patches.videolan.org/patch/606/在属性-C/C++添加VLC所需要的头文件在VS下创建动态库,创建完成后新建头,如VLC_MediaDLL.h文件,添加代码如下:#ifdef DLL_VLC_MEDIADLL//如果已经定义就什么都不做#else#define DLL_VLC_MEDIADLL __dec...原创 2018-12-18 13:36:19 · 1093 阅读 · 0 评论