自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 qt 读ini配置文件

#include <QSettings>QSettings infoRead("support.ini", QSettings::IniFormat);//打开文件 infoRead.setIniCodec("UTF-8");//文件编码格式 this->width = infoRead.value("/RATIO/width").toInt();//RATIO组下的width数据 this->height = infoRead.value("/RATIO/height"

2021-03-10 13:09:02 132

原创 qt setFixedSize() 后resize() 无效

在某个控件要resize()之前添加ui->label->setMinimumSize(0, 0);ui->label->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));

2021-03-10 11:55:43 1950

原创 C++ 锁管理器std::lock_guard和std::unique_lock

锁管理遵循RAII习语来处理资源。锁管理器在构造函数中自动绑定它的互斥体,并在析构函数中释放它。这大大减少了死锁的风险,因为运行时会处理互斥体。。锁管理器在C++ 11中有两种:用于简单的std::lock_guard,以及用于高级用例的std::unique_lock。未用锁管理器的例子mutex m;m.lock();sharedVariable= getVar();m.unlock();在这点代码中,互斥体m确保关键部分sharedVariable= getVar();的访问是顺序的

2021-02-26 16:36:11 447

原创 如何用qt发布程序

1.用Release方式构建项目 构建成功后,会在项目文件夹中Release文件夹中生成.exe文件:这时如果运行.exe文件会发生错误,提示找不到一些.dll文件:因为.exe文件对其他文件有依赖关系,可以使用windeployqt解决,发布一套完整的程序及其依赖的库文件。2.在开始菜单中找到Qt cmd 工具,打开对应的版本的cmd命令行3.进入构建目录下:运行命令windeployqt Test.exewindeployqt会帮我们解决文件依赖关系,程序需要的库文件都生成在了

2021-02-26 14:35:42 163

原创 go常用包简介

一、Go 标准库可以大致按其中库的功能进行以下粗略的分类输入输出。这个分类包括二进制以及文本格式在屏幕、键盘、文件以及其他设备上的输入输出等,比如二进制文件的读写。对应于此分类的包有bufio、 fmt、 io、 log和flag等,其中 flag 用于处理命令行参数。文本处理。这个分类包括字符串和文本内容的处理,比如字符编码转换等。对应于此分类的包有encoding、 bytes、 strings、 strconv、 text、 mime、 unicode、 regexp、index和path

2021-02-25 17:58:59 1337

原创 go string与time标准包使用简介

Go语言的标准库覆盖网络、系统、加密、编码、图形等各个方面,可以直接使用标准库的 http 包进行 HTTP 协议的收发处理;网络库基于高性能的操作系统通信模型(Linux 的 epoll、Windows 的 IOCP);所有的加密、编码都内建支持,不需要再从第三方开发者处获取Go 语言的编译器也是标准库的一部分,通过词法器扫描源码,使用语法树获得源码逻辑分支等。Go 语言的周边工具也是建立在这些标准库上。在标准库上可以完成几乎大部分的需求Go 语言的标准库以包的方式提供支持,下表是 Go 语言标准库中

2021-02-25 17:56:24 565

原创 c++11暂停线程的工作

bool pauseFlag=false;void WorkThread(){ while(条件) { if(pauseFlag) { Sleep(1000); continue; } }}void DoPause(){ pauseFlag=true;}方法大概就是:建立一个flag代表暂停或工作状态,当要暂停时,把flag改为true,在工作线程的循环中判断这个条件,为true则睡眠,并continue这次循环。...

2021-02-24 10:43:29 273

原创 qt删除文件或文件夹

想用QT编一段删除文件夹或文件的代码,网上搜索了很多,关于删除文件夹都用递归删除的方法,因为非空文件夹不能直接删除,只能先清空文件夹里的东西,才能执行删除文件夹的操作。实际上QT5之后有更简便的方法,就是用QDir::removeRecursively(),详细的可以查QT帮助文档。  利用QDir::removeRecursively()和QFile::remove(),可以写出很简单的删除文件夹或文件的操作。#include <QFile>#include <QDir>#

2021-02-23 10:32:10 5122 1

原创 vs手动添加qt模块

开发环境: Qt 5.9.0 VS2017VS2017 在生成新的工程时,会默认带了一些模块。如果添加新的模块如何操作呢?目前就添加 [QWebEngineView] 模块为例。在生成新的工程时默认带的模块,里面没有QWebEngineWidget模块,所以需要自己手动配置:按照下图的步骤添加WebEngineView 就可以啦1:第二步: 添加lib 库文件Qt5WebEngined.libQt5WebEngineWidgetsd.lib然后就好了...

2021-02-22 13:51:36 2192

原创 vmware 共享文件夹

确保成功共享vmware-hgfsclient挂载yum install open-vm-toolsvmhgfs-fuse .host:/ /mnt/hgfs

2021-02-09 11:52:07 184

原创 linux安装cmake

1.获取源码包wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz2.解压源码包tar xzvf cmake-3.3.2.tar.gz3.安装cmakecd cmake-3.3.2./bootstrapgmakemake install4.配置环境变量export PATH=…/cmake-3.3.2/bin:$PATHsource /etc/profile...

2021-02-09 10:56:11 304

原创 windows goland安装

https://www.cnblogs.com/double12gzh/p/13680180.html

2021-02-08 20:44:25 256 1

原创 centos7 安装mysql8.0+

版本选择官方下载网址:https://downloads.mysql.com/archives/community/Centos可选redHat版本,也可以选择通用版(Linux—Generic)因为此处使用.rpm文件安装,故找到mysql8.0.22的rpm包,包名如下:三、 安装过程1.创建文件夹mysql和mysql下的mysql-8.0.22cd /usr/localmkdir mysqlcd /usr/local/mysqlmkdir mysql-8.0.222.将rpm

2021-02-08 11:26:39 191 1

原创 centos7彻底卸除mysql

基于MySQL数据库基于Centos7.3-部署后,卸载mysql数据库:[root@host-131 ~]# yum remove mysql-community-serve使用remove发现还有部分残余文件:这就是默认的卸载,其实还有很多 MySQL 依赖的软件包都并没有移除,我们可以使用 rpm 命令的方式查看有哪些相关的软件名[root@host-131 ~]# rpm -qa |grep mysqlmysql-community-libs-5.7.22-1.el7.x86_64

2021-02-08 10:22:19 166

原创 CentOS7 安装boost库

1.yum install boost2.yum install boost-devel3.yum install boost-doc

2021-02-07 15:48:21 600

原创 linux c语言编译中头文件位置

先说头文件位置吧,分两类:1、/usr/include就是我们常用的一些:比如stdio.h,stdlib.h2、一些特殊模块需要头文件,例如我需要做内核相关的软件,用到例如printk()(这个函数,等同与用户态的printf())就需要kernel.h就存在/usr/include下的linux目录下...

2021-02-07 15:47:41 757 1

原创 go string转int方法

str := “123”1// string 转 inti, err := strconv.Atoi(str)2// string 转 int64i64,err := strconv.ParseInt(str,10,64)3// string 转 int32tmp,err := strconv.ParseInt(str,10,32)j32:=int32(tmp)4// string 转 uint64i64,err := strconv.ParseUint(str,10,64)5

2021-02-04 15:18:17 474 1

原创 使用http.Newrequest最简单模型

先声明http.client -> 再声明 http.request -> 之后提交请求:client.Do(request) -> 处理返回结果,每一步的过程都可以设置一些具体的参数,下面是一个最朴素最基本的例子:package mainimport ( "fmt" "io" "net/http" "os")func main() { //声明client 参数为默认 client := &http.Client{} //声明要访问的url url

2021-02-04 11:02:01 3130

原创 go 中接口的理解以及多态的实现

鸭子模型那什么鸭子模型?鸭子模型的解释,通常会用了一个非常有趣的例子,一个东西究竟是不是鸭子,取决于它的能力。游泳起来像鸭子、叫起来也像鸭子,那么就可以是鸭子package mainimport "fmt"type Duck interface { Quack() DuckGo()}type Chicken struct { name string}func (c Chicken) Quack() { fmt.Println("嘎嘎")}func (c Chicken)

2021-02-03 18:01:02 230

原创 golang struct 定义中json``解析说明

package mainimport ( "encoding/json" "fmt")//在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有小米点括起来的内容。`TAB键左上角的按键,~线同一个键盘`type Student struct { StudentId string `json:"sid"` StudentName string `json:"sname"` StudentClass str

2021-02-03 13:37:41 1570

原创 windows和ubuntu之间传输文件

1。windows下载filezilla软件并安装https://filezilla-project.org/2. 使用FileZilla传输文件需要SSH服务,Ubuntu作为服务端使用需要安装SSH服务端,使用以下命令安装:sudo apt-get install openssh-server3.更改linux下的ssh服务配置#sudo vim /etc/ssh/sshd_config找到并用#注释掉这行:PermitRootLogin prohibit-password新建一行

2021-02-03 11:41:15 408

原创 解决每次进入命令都要重新source /etc/profile

在~/.bashrc文件中添加以下代码vim ~/.bashrc并在最后一行添加source /etc/profile

2021-02-03 11:24:43 702

原创 ubuntu18.04安装go环境

1.去官网获取go安装包2.解压tar xfz go1.13.4.linux-amd64.tar.gz -C /usr/local3.配置全局变量#修改~/.bashrcvim ~/.bashrc#添加Gopath路径export GOPATH=/usr/local/goexport PATH=GOPATH/bin:GOPATH/bin:GOPATH/bin:PATH重启文件source ~/.bashrc4.验证是否配置成功go version#提示warningwarning

2021-02-02 17:14:25 236

原创 Ubuntu 安装 MySQL 8.0+

Ubuntu 18.04 安装 MySQL 8.0 教程下载MySQL配置文件,网址:https://dev.mysql.com/downloads/repo/apt/ 打开如下图:打开后将下拉到网页底部点击Download按钮下载deb文件,打开如下图:进入下载页面,选择No thanks, just start my download,操作如下图进入下载文件目录,打开终端,执行命令:sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb选择MySQ

2021-02-02 17:06:12 332

原创 ubuntu下如何完全彻底卸载mysql

第1步 依次执行下面的语句1 sudo apt-get autoremove --purge mysql-server2 sudo apt-get remove mysql-server3 sudo apt-get autoremove mysql-server4 sudo apt-get remove mysql-common第2步 清理残留数据dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P如果报如下错误,证明你的系统中没有残留

2021-02-02 16:58:25 501

原创 Ubuntu18.04 安装mysql5.0+

提示:以下操作均在root用户下进行,如在普通用户,请自行加上sudo!查看有没有安装MySQL:dpkg -l | grep mysql安装MySQL:apt install mysql-server安装完成之后可以使用如下命令来检查是否安装成功:netstat -tap | grep mysql通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。登录mysql数据库可以通过如下命令:mysql -u root -p-u 表示选择登陆

2021-02-02 14:33:34 448

原创 Linux系统如何永久改变系统时间

Centos系统,必须同时修改系统时间和硬件时间,才可以保证修改有效,单纯的使用date命令修改系统时间,是立即生效,重启后系统还原。具体操作如下:1.date {查看目前本地的时间}2.hwclock --show {查看硬件的时间}3.如果硬件时间和系统时间不同,那就对硬件的时间进行修改4.hwclock --set --date ‘014-12-15 15:15:15’ {设置硬件时间为14年12月15日15点15分15秒}5.hwclock --hctosys {设置系统时间和硬件时间同步

2021-02-01 13:35:59 702 1

原创 qt 使用滚轮控制scrollArea 已鼠标为中心缩放

1重写 QAbstractScrollArea 类的wheelEvent函数,让它什么都不要做void QAbstractScrollArea::wheelEvent(QWheelEvent *event){ return;}2 实现QScrollArea里面的Qlabel放大缩小void OpenAndSplicingWindow::wheelEvent(QWheelEvent *event){ ui->lb_Screen->setMinimumSize(0, 0); ui

2021-01-29 16:30:37 2665 1

原创 qt 鼠标拖动scrollArea中图片位置

头文件#include <QMouseEvent>#include <cmath>#include <QPoint>类中添加 QPoint preDot;//纪律鼠标移动前位置 QPoint offset;//一次的偏移 bool mousePress = false; void mousePressEvent(QMouseEvent *event);//鼠标按键事件 void mouseReleaseEvent(QMouseEvent *event)

2021-01-29 11:16:25 787

原创 qt 自己写的sqlite数据库调用类

有需要的可以拿去改改就能用头文件#ifndef DATABASE_H#define DATABASE_H#include <QSqlDatabase>#include <QSqlTableModel>#include <QString>#include <QSqlQuery>#include <QMap>#include <QVector>#include <QtCore/qglobal.h> ty

2021-01-28 17:50:57 248

原创 qt scrollArea中的内容居中对齐

QLabel *imageLabel = new QLabel(this);QPixmap pixmap(":/Images/head");pixmap = pixmap.scaled(200, 200, Qt::KeepAspectRatio); // 图片缩放imageLabel->setPixmap(pixmap);imageLabel->setStyleSheet(“background: white;”); // 标签白色背景imageLabel->setAlign

2021-01-28 15:09:02 1356

原创 qt 实现窗口的放大或缩小

this->setMinimumSize(0, 0);//设定窗口最大最小大小 this->setMaximumSize(2040, 2040); QRect tmp = this->geometry(); QPoint centerPoint = tmp.center(); // 储存中心点坐标 int adjustSize = 20; //放大缩小的尺寸 if (放大) // 放大 { tmp.setWidth(tmp.width() + adjustSize...

2021-01-26 15:41:47 3643

原创 qt为按钮添加点击操作

1.在.h文件当中添加class A{public: QPushButton *pushButton; void EventDo(); public slots: void Event();} 2.在cpp文件相应位置添加this->pushButton=ui->pushButton;//将ui文件上的按钮地址记录过来;connect(pushButton,SIGNAL(clicked()),this,SLOT(EventDo()));3.在cpp中补充Event

2021-01-25 14:17:10 994

原创 c++11线程使用

1创建句柄std::thread *pjhandle;2创建线程工作函数void thread(LPVOID Param){ type *pThis = (type*)Param; pThis->do();}3创建对象pjhandle = new std::thread(thread, this);4等待线程退出并回收pjhandle->join();

2021-01-25 10:01:21 160

原创 使用 ffmpeg将MP4转成yuv并转成jpg图像

main 文件#include <iostream>extern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libavutil/imgutils.h"#include "libswscale/swscale.h"};#include <afxwin.h>#pragma warning(disable:4996)using namespace std;

2021-01-19 14:42:04 766

原创 sqlite 获取当前时间 精确到毫秒

select 语句省略后面的from table一样有效 即select 1 或 select (datetime(‘now’))datetime(‘now’) 获取当前的时间RecNo (datetime(‘now’))1 2015-03-24 10:59:32datatime函数的结果不显示毫秒只显示到秒如果想显示毫秒用小面的语句strftime(’%Y-%m-%d %H:%M:%f’,‘now’)strftime(’%Y-%m-%d %H:%M:%f’,‘now’,‘localtim

2021-01-18 11:27:54 2598

转载 stringstream 简单用法

1 概述 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。 主要用来进行数据类型转换,由于 使用 string 对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。简单说,相比c库的数据类型转换而言, 更加安全、自动和直接。2 代码示例2.1

2021-01-15 10:01:55 286

转载 vs 动态库,静态库使用及制作

静态库生成静态库:1.创建Win32项目。2.选择“静态库”项目,取消勾选“预编译头”。3.修改项目属性。选择“MTd”。5.写代码。6.编译生成编译通过后,去相应的文件夹下找到对应的“.h”和“.lib”文件,本实例是:“MyMath.h”和“StaticLib.lib”。将这两个文件交给别人来使用就可以了。7.使用静态库新建一个项目,将“MyMath.h”和“StaticLib.lib”复制到项目文件夹中。并连接。动态库1.创建Win32项目。2.选择 DLL 项目

2021-01-13 16:27:56 279

转载 iopc使用例子

//步骤1:创建完成端口//步骤2:创建侦听socket并将侦听socket绑定到完成端口上//步骤3:设置侦听步骤1代码:m_hIOCompletionPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0 ); 步骤2代码://创建侦听socket m_pListenContext->m_Socket = WSASocket(AF_INET,

2021-01-06 13:43:45 583 1

转载 完成端口(CompletionPort)详解

一. 完成端口的优点1. 我想只要是写过或者想要写C/S模式网络服务器端的朋友,都应该或多或少的听过完成端口的大名吧,完成端口会充分利用Windows内核来进行I/O的调度,是用于C/S通信模式中性能最好的网络通信模型,没有之一;甚至连和它性能接近的通信模型都没有。完成端口和其他网络通信方式最大的区别在哪里呢?(1) 首先,如果使用“同步”的方式来通信的话,这里说的同步的方式就是说所有的操作都在一个线程内顺序执行完成,这么做缺点是很明显的:因为同步的通信操作会阻塞住来自同一个线程的任何其他操作,只

2021-01-06 11:55:21 3094 1

空空如也

空空如也

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

TA关注的人

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