- 博客(62)
- 资源 (1)
- 收藏
- 关注
原创 QT:只允许在自定义标题栏中鼠标拖动控制窗口位置
目录说明效果展示代码说明在使用了自定义的标题栏,想要实现鼠标只能在标题栏中拖动窗口,在其它地方拖动不了窗口的效果。我们这里是在标题栏类的鼠标事件中处理拖动窗口的事情。实现过程:标题栏类中的鼠标事件获取了拖动位置后,通过移动标题栏的父类部件,从而实现窗口拖动。效果展示代码主窗口代码#include "widget.h"#include "ui_widget.h"#include <QLabel>#include <QLay..
2021-05-31 17:48:24 816
原创 windows:使用微软的TTS(文本转语音)进行文本播报
目录说明使用示例代码说明TTS的API原来支持的字符串类型是LPCWSTR,我这边有做一个字符串转换的处理,使其支持QString 和 std::string两种类型的字符串。注意:如果需要更换函数形参的类型,需要函数形参类型更换,以及函数里的字符串转换部分进行一个调整。使用示例#include <iostream>#include "sapi.h"#include "sphelper.h"int main(int argc, char* argv.
2021-05-31 14:44:41 10406 3
转载 Centos开启SSH服务
本篇文章为转载,原作者文章地址:Centos7开启SSH服务 - KinwingHU - 博客园 (cnblogs.com)在虚拟机(Vmware Workstation)下,安装了CentOS7,现在想通过SSH工具连接虚拟机中的CentOS71、 首先,要确保CentOS7安装了 openssh-server,在终端中输入 yum list installed | grep openssh-server此处显示已经安装了 openssh-server,如果又没任何输出显示...
2021-05-27 16:26:22 33535
原创 QPushButton按钮互斥效果
说明在某些情况我们想要实现的效果是:选中一个按钮后,上一次选择的就取消了,按钮和按钮之间产生互斥的效果!如下图效果:实现步骤1、需要创建一个QButtonGroup,然后启用互斥属性QButtonGroup* btn_group;btn_group = new QButtonGroup(this);btn_group->setExclusive(true);//启用互斥2、创建QPushButton,将按钮的checked启用,然后加入QButtonGr..
2021-05-25 14:38:29 2885
原创 在windows下,带控制文本颜色的printf实现!
函数基于某个博客实现的printf,对其函数内部增加了对文本颜色的控制。原博客地址:自己实现的printf函数_行者三个石的博客-CSDN博客_自己实现printf函数说明:该函数用法,将my_print.h头文件添加,即可使用!注意事项:1、无法对浮点数进行小数点后数量的精度控制。2、使用时必须要设置文本颜色参数,默认设置为NULL示例代码#include <iostream>#include "my_print.h"using namespa..
2021-05-21 13:32:48 1367
原创 Qt:QListWidget用法总结(后续更新)
目录设置item的宽,高设置item的宽,高QListWidgetItem* item = new QListWidgetItem(itemStr);item->setSizeHint(QSize(40, 50));
2021-04-07 10:42:05 916
原创 QT:从外部拖拽文件到QWidget中,获取其文件的路径(单文件和多文件)
程序运行实例实现步骤1、启用拖放事件setAcceptDrops(true);2、重写 dragEnterEvent 和 dropEvent 事件//拖动进入事件void Widget::dragEnterEvent(QDragEnterEvent *ev){ if(ev->mimeData()->hasUrls())//是否是文件路径 { ev->accept();//接收拖动进入事件 } //e..
2021-03-30 15:04:13 1827 5
原创 QT:简单日志文件处理
目录功能使用方法日志输出结果log文件功能程序在debug模式下, 正常输出 程序在release模式下,输出信息到日志文件上面日志文件统一存放在exe所在目录的上一级目录logDir下,以当天的日期时间命名日志文件保存七天。使用方法IDE:Qt Creator1、将 log_out.h 和 log_out.cpp添加进项目。2、pro文件加入以下代码,//该代码解决release模式下,输出的日志信息不显示文件名,行号等信息D...
2021-03-26 17:22:22 1029
转载 Git下载速度慢解决方法
使用github cnpmjs镜像可以将本来的git clone https://github.com/xxx.git改成:git clone https://github.com.cnpmjs.org/xxx.git这样通过代理可以比较轻松地加速示例:如原地址:git clone https://github.com/gabime/spdlog.git更改后:git clone https://github.com.cnpmjs.org/gabime/sp..
2021-03-25 10:26:27 732
原创 QT:基于QWebEngineView类的一个简单浏览器示例
程序演示项目下载项目环境:vs2013 + qt5.7项目是在vs当中写的,如果因为环境问题不能运行代码的话,需要自己配置环境复制我的代码,差不多两百多行代码,已上传百度云盘云盘链接:https://pan.baidu.com/s/1LFfLX-ZD1erjYsiQtcVjvw 提取码:aa47...
2021-03-19 10:20:27 554
原创 QT:QWebEngineView里面的页面链接点击无反应的解决方法
通过继承QWebEngineView重写createWindow函数实现,代码如下:#pragma once#include <QWebEngineView>#include <qwebenginepage.h>#include <qurl.h>class WebView : public QWebEngineView{ Q_OBJECTpublic: explicit WebView(QWidget *parent = nullptr)
2021-03-17 14:46:39 4944 3
原创 QT:QProcess类,判断某个进程是否存在
目录代码使用示例代码bool IsProcessExist(QString processName){ QProcess process; process.start("tasklist"); process.waitForFinished(); QByteArray result = process.readAllStandardOutput(); QString str = result; if(str.contains(pro.
2021-03-16 11:32:14 2812
原创 QT:QSS样式总结(后续更新)
QListWidgetQListWidget{ outline:0px; //去除item选中时的虚线框}QListWidget::item{ height:40; //item高度}QListWidget::item:hover{ background: red; //悬停时item背景颜色}QListWidget::item:selected{ background: rgb(170, 170, 170);//选择item
2021-03-05 09:20:49 1175 3
原创 QT:QWidget的一些实用操作
判断鼠标是否在某个部件的上面QLabel label;if(label.underMouse()) //如果在,为真
2021-03-04 14:38:35 437 1
原创 QT:基于moveThread方法,优雅的关闭一个线程
目录简述程序演示示例代码简述其操作方式很简单,就是在线程执行处通过使用标记位的方式来停止线程。QT内部其实已经帮我们写好了,我们在合适的地方调用就行了其标记位函数是以下两个:QThread::currentThread()->requestInterruption(); //请求中断 QThread::currentThread()->isInterruptionRequested() //当接收到上面中断请求后,该函数返回true...
2021-02-25 14:27:51 5246
原创 windows:简单的socket通信
说明这个示例是写了一个服务端和一个客户端,客户端发数据,服务器接数据。注意事项:1、需要先运行服务端,再运行客户端2、服务器和客户端都在同一台机器运行的时候,ip地址双方可以都设置为127.0.0.13、服务器和客户端不在同一台机器运行的时候,服务器绑定套接字的时候,ip需要设置为自己的ip,客户端连接套接字的ip需要设置为连接方的ip(也就是服务器ip)4、如何在vs中Ctrl+F5运行不显示数据,可以考虑直接运行编译生成的exe文件服务器代码#include &l.
2021-01-29 10:34:44 3145
原创 windows枚举所有窗口
目录枚举所有窗口,根据窗口的标题进行处理枚举所有窗口,根据窗口的类进行处理枚举所有窗口,根据窗口的标题进行处理#include <windows.h>#include <stdio.h>BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ TCHAR szTitle[MAX_PATH] = { 0 }; ::GetWindowText(hwnd, szTitle, MAX_PA.
2021-01-26 15:46:25 1519
原创 QT: 最小化窗口到托盘图标
当只有一个窗口的时候,使用hide()函数隐藏窗口会使得程序直接结束,无法达到窗口隐藏在托盘图标显示的效果。加入setWindowFlags(Qt::Tool); 这条代码可以解决这两个问题,1、窗口下方任务栏中无程序图标显示2、当只有一个窗口的时候且创建了托盘图标的时候,使用hide()隐藏窗口不会让程序直接退出。效果图:Widget示例代码#include "widget.h"#include "ui_widget.h"#include <QDebu...
2021-01-25 11:35:50 2687
原创 Qt:QTableWidget用法总结(持续更新)
目录设置item数据设置带icon的item数据在item中加入Widget控件、读取widget信息去除水平和垂直表头表格内容禁止双击编辑单击item选择一行数据item设置背景色,字体颜色,位置居中根据表格的高度,自适应行高根据表格的宽度,自适应列宽取消item点击效果设置item数据 tableWidget->setItem(0,0,new QTableWidgetItem("Jan")); tableWidget->s.
2021-01-19 14:15:06 3121
原创 Qt:在windows上判断进程是否在运行
目录实现原理:进程名字获取:代码示例实现原理:通过QProcess类执行cmd命令(tasklist),获取当前的进程列表,然后根据指定的进程名和返回的结果进行比对,从而判断进程是否在运行进程名字获取:打开任务管理器 -》 右键点击某个进程 -》 点击属性 -》 最后执行画面如下图:代码示例//注意:需要包含头文件#include <QProcess>bool Widget::Whet...
2021-01-19 11:37:03 4363 1
原创 Qt Charts 图表组件(折线图)
目录效果图代码实现效果图代码实现pro文件添加: QT += charts头文件使用:#include <QtCharts>using namespace QtCharts; void Widget::CreateChart(){ //创建图表 QChartView* chartView = new QChartView(this); chartView->resize(this->size())
2021-01-15 15:02:16 2061 1
转载 设计模式(C++):单例模式
简介单例模式顾名思义,保证一个类仅可以有一个实例化对象,并且提供一个可以访问它的全局接口。实现单例模式必须注意一下几点: 单例类只能由一个实例化对象。 单例类必须自己提供一个实例化对象。 单例类必须提供一个可以访问唯一实例化对象的接口。 单例模式分为懒汉和饿汉两种实现方式。懒汉单例模式懒汉:故名思义,不到万不得已就不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化一个对象。在访问量较小,甚至可能不会去访问的情况下,采用懒汉实现,这是以时间换空间..
2021-01-09 10:18:54 75
原创 在windows上实现安装包自动化安装
目录简述模拟下一步按钮点击模拟单选按钮接受协议,再进行下一步点击简述想要通过程序自动控制,省略手动点击安装的过程。 通过使用windowsAPI来实现实现原理:通过安装程序窗口句柄,再获取控件句柄,向控件发送按钮点击消息,从而实现自动操作模拟下一步按钮点击#include<Windows.h>HWNDhWnd=FindWindow(NULL,_T("MicrosoftSpeechSDK5.1-InstallSh...
2020-12-26 15:19:12 3110 4
原创 QSystemTrayIcon类:系统托盘图标
目录创建菜单(QMenu)和菜单的项(QAction)创建系统托盘,并添加菜单托盘通知弹窗创建菜单(QMenu)和菜单的项(QAction)//初始化一个菜单和两个项目QMenu* trayMenu = new QMenu(this);//菜单QAction* showAction = new QAction(tr("显示"));//项1QAction* exitAction = new QAction(tr("退出"));//项2//菜单添加项trayMenu-&.
2020-12-08 22:11:48 1164
原创 QT类型转换
QString转const char *QString qstr = "hello";std::string str = qstr.toStdString();const char* cstr = str.c_str();qDebug()<<QString::fromLocal8Bit(cstr);QString 转 char *QString qStr = "hello";std::string stdStr = qStr.toStdString();char*.
2020-12-05 10:11:15 175
原创 QT: QSetting类设置软件开机自动启动
通过写入注册表和移除注册表信息实现软件开机自启动void SetAutomaticSoftwareStartup(bool isBoot){ //QSettings提供与操作系统无关的应用程序设置,windos下通常存储在注册表中 //QSettings::NativeFormat:使用最适合平台的存储格式存储设置。 QSettings reg("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\
2020-12-05 10:00:42 419
原创 QProcess类 :(qt启动一个外部exe程序,带参exe程序,cmd命令)
目录执行cmd命令启动一个外部exe程序示例启动一个带参数的exe程序示例执行cmd命令QProcess program;QString cmd = "shutdown -s -t 120";program.start(cmd);program.waitForFinished();启动一个外部exe程序示例QProcess program;QString cmd = "C:\\meetsystem\\MeetClient\\bin\\MeetClient2.exe";program.st
2020-12-02 17:27:16 8602 4
原创 VS2017编译QT错误(QtWidgetsApplication9.ui : error -1073741515: uic (xxxxx\bin\uic.exe)
因为之前一直使用Qt Creator写的qt代码,然后今天尝试用vs写,突然发现出现下面这样的问题,uic出现问题我找了很久,百度和Google了很多解决方案,没有效果。最后发现原因了!!我进入我的QT安装目录下msvc/bin目录下双击uic.exe运行,发现它缺少了一个叫vcruntime140_1.dll的文件于是我去下载了这个dll,将其放入uic.exe同一级目录下。最后再去vs运行,问题解决了!如果我的这篇文章对你有帮助,就麻烦给我点个赞了~...
2020-09-07 21:51:03 1969
转载 QT:自带框架安装包制作
此篇文章为转载,原创地址:https://blog.csdn.net/mars_xiaolei/article/details/83825447?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-5&spm=1001.2101.3001.4242目录Qt Installer Framework 概述下载Qt Installer Framework安装Qt Installer Framework程序打包发布创建安装包程序Qt In.
2020-08-03 20:17:47 3169
原创 QT:创建基类为QWidget的圆角矩形窗口
目录实现过程实现代码运行结果实现过程实现圆角矩形背景过程有两步操作:1.首先需要设置为无边框窗口和窗口背景透明2.通过绘画事件绘制带有圆角矩形的背景图下面是我自己通过ps制作的一个圆角矩形背景图:实现代码main.cpp#include "widget.h"#include <QApplication>#include "mywindow.h"int main(int argc, char *argv[]){ QApplication a(argc, a
2020-08-02 17:25:56 1157 1
原创 QT:颜色拾取器的实现
前言思路:首先需要获取到鼠标的x和y坐标点,然后获取鼠标坐标点的像素点。将像素点的rgb分离出来显示。最后label上显示这个像素点的RGB如果想要实时的显示这些数据的话,使用的是定时器一直调用函数showColorValue就行了核心代码://获取桌面x,y坐标点宽度1,高度1的像素QWindow window;QPixmap pixmap = window.screen()->grabWindow(QApplication::desktop()->winId(),x,y,1,1)
2020-05-29 22:58:02 2728 1
原创 QT:QSettings类,实现界面配置记忆功能
目录QSettings类的基本使用示例代码QSettings类的基本使用写入配置文件 //打开配置文件,写入宽高 //该构造函数使用的参数1:配置文件的路径,参数2:使用ini格式进行读写 QSettings setting("./config.ini",QSettings::IniFormat); setting.setValue("width",this->width()); //对应的键值进行写入数据(这里写入的是程序窗口的宽度) setting
2020-05-26 18:29:43 2118
原创 QT中的Json解析和生成
目录说明Json解析Json生成说明首先说明一下解析和生成这个Json文件需要用到Qt的哪些类:#include <QJsonDocument>#include <QJsonArray>#include <QJsonObject>看上图, 我用不同颜色的矩形线条标明了它们所在的不同层次。Json文件你可以把它看成一层一层得包...
2020-03-03 16:52:19 555
原创 多线程之条件变量
条件变量是一种同步互斥机制,它必须和互斥锁一起使用例子:假设共享资源初始值为400,每次访问此资源便会 -200。此时有五个线程,它们都想去获得资源。很显然只有两个线程能够访问到,那剩下的三个线程怎么办呢?进入条件变量等,等待唤醒。唤醒时这些线程会一个个去访问资源(每个线程访问资源时都需要上锁),如果能访问就资源-200,如果不能就继续回到条件变量等待唤醒。#include <...
2019-08-26 16:08:38 637
原创 标准I/O
标准IO:读/写有缓冲区的标准IO对象 -> 普通文件,例如: 访问1.txt,2.jpg,3.mp3..标准I/O实例:#include <stdio.h>int main(){ //以读写方式打开文件,如果文件不存在则创建,如果存在则清空内容,文件指针定位开头 FILE *fp = fopen("1.txt","w+"); if...
2019-08-25 12:16:20 176
原创 进程从创建到结束的状态
进程状态描述:一个进程的诞生,是从其父进程调用fork()开始的。进程从刚开始被创建出来,是处于TASK_RUNNING(就绪态),进程被放在等待队列中排队等待系统调度。linux内核中的函数sched()称为调度器,它会根据各种参数来选择一个等待的进程去占用cpu,当进程占用了cpu后,就从就绪态转变成了执行态。此时进程可以运行了,但是运行时间有一个限制,即“时间片”的概念。当时间片...
2019-08-10 17:13:58 3570 1
原创 多进程之管道通信
管道通信有两种:无名管道、有名管道无名管道:无名管道只能作用于亲缘关系的进程,例如父子进程。无名管道其实是数组来的,里面有读端与写端,进程只需要将数据写入/读取到管道中,就可以实现通信。下面是初始化无名管道中的读写端文件描述符1)申请数组 -> int fd[2]; -> 里面的数据不是文件描述符2)调用API函数初始化数组 p...
2019-08-09 22:01:37 758
webDemo.zip
2021-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人