自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (11)
  • 收藏
  • 关注

原创 Qt中一些实用的技巧

当QLabel中的文字过长,在最后面显示省略号QString newStrMsg = "1234567890abcdefghijklmnopqrstuvwxyz";QFontMetrics fontWidth(ui->noteValueLabel->font()); //得到每个字符的宽度QString elideNote = fontWidth.elidedText(newStrMsg, Qt::ElideRight, 150); //最大宽度150像素ui-&g.

2020-10-14 21:55:23 718

原创 Python - 包发布

3. 编写 setup.py 文件:setup.py 是一个 Python 脚本,用于定义包的元数据(如名称、版本、作者等)以及构建、安装和分发包的方式。1. 在项目的根目录下创建一个包目录(通常以包名命名),然后在该目录下创建一个名为 __init__.py 的空文件。2. 编写模块代码:在包目录下创建模块文件并编写代码。如果要将多个模块包含在一个包中,则需要在该包目录下创建多个模块文件。这将生成一个名为 dist 的目录,并在其中包含一个或多个构建好的包文件。通过pip freeze可查看已安装的包。

2023-03-28 17:59:29 291 1

原创 Qt中的进程通信1 - 共享内存

共享内存即两个(或多个)程序共享操作系统中的一块空间,这样程序1就可以把想传给程序2的数据放到共享内存中,然后程序2去读取共享内存,这样通过间接的一种方式实现了程序间的数据传输。下面例子展示了在程序1打开时,程序2通过命令行参数给程序1传递这个参数的功能。

2022-12-01 15:32:35 629

原创 Linux环境下提升Qt编译速度

Qt提升编译速度

2022-11-10 16:43:22 861

原创 在Qt中使用MySQL

在Ubuntu中Qt使用MySQL

2022-08-30 21:55:58 2704 2

原创 Shell基础概念

shell是什么当我们谈到命令行时,我们实际上是指shell。 shell是一个应用程序,它从键盘读取命令然后交由操作系统来执行,来访问或者实现对操作系统的管理。所有 Linux 发行版都有默认的shell,一般是bash shell,源自GNU Project 。“bash”是“Bourne Again Shell”首字母缩写,bash 是 sh 的增强版本。终端在图形界面操作系统下,我们需要一个额外的程序来与shell交互,这个程序就是终端模拟器,在 Ubuntu 系统下的终端叫gnom

2022-05-31 11:57:50 355 1

原创 Qt自定义委托

Qt中的委托通常都是继承自QStyledItemDelegate或者QItemDelegate,二者的区别主要在于绘制方式,QStyledItemDelegate会使用当前样式绘制,并且能够使用qss,因此在在自定义委托时,一般使用 QStyledItemDelegate作为基类。除此之外,二者基本没有区别,写法和用法都一样。继承 QStyledItemDelegate需要实现以下几个函数:createEditor():returns the widget used to change data f

2022-05-27 09:40:28 1764

原创 Thrift在Linux上的编译安装

首先安装编译所需的相关依赖(如果有则忽略)sudo apt-get install automake bison flex g++ git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config下载下图中的三个文件,分别为libevent - 一个事件通知库,在thrift中用来实现异步功能; boost - 编译thrift必需的库,thrift中的智能指针之类的都需要依赖boost; thrift-0.12.

2022-03-30 16:55:31 3131

原创 QTableView效率优化3 - 自定义Model的内容补充

在上一篇文章 - QTableView效率优化2中https://blog.csdn.net/qq_37996632/article/details/123551325?spm=1001.2014.3001.5501,继承QAbstractTableModel自定义了一个简陋的table model,虽然能快速加载出10w,100w级别的数据,但是本身并没有任何接口。想要这个model正常使用,一般来说还需要加上这么几个接口:setItemText() - 为指定的单元格(QModelIndex/row

2022-03-18 16:05:31 1943 1

原创 QTableView效率优化2 - 自定义Model秒级加载百万行数据

在前文中,对于QStandardItemModel的效率进行了部分优化,https://blog.csdn.net/qq_37996632/article/details/123427832?spm=1001.2014.3001.5501,几万行以内的数据,QStandardItemModel还是非常好用的,直接有Qt写好的大量现成接口。也正是因为QStandardItemModel和QStandardItem包含的东西过多,不够简洁,所以在十万行级别的大量数据时QStandardItemMode...

2022-03-17 17:02:28 5882

原创 QTableView效率优化1 - QStandardItemModel

QStandardItemModel1. 为QStandardItem设置数据时table_model->setData(table_model->index(i, j), _item_str, Qt::DisplayRole);2. 禁用resizeToContents() 如果对 QTableView 的 verticalHeader 或 horizontalHeader 设置setSectionResizeMode(QHeaderView::ResizeToConten...

2022-03-17 15:01:24 5119 3

原创 if: Expression Syntax. then: Command not found

原始问题:在执行source xxx时,出现if: Expression Syntax. then: Command not found;连锁问题:.bashrc中的自定义命令等不生效;原因:打开终端中默认是/bin/sh,bash shell未激活,激活bash shell可以用:exec bash但是只在当前这个打开的终端生效,打开新的终端依旧是无效的;终极解决方法:将用户打开的终端由默认的/bin/sh更改为bash。这样即使在重启后,打开的终端也默认是bash。sud

2022-02-13 10:59:19 3360 2

原创 修改Linux系统网卡参数

在Linux系统中,修改网卡参数有两种方法使用ifconfig/ip等命令临时修改(只是临时修改,重启网卡/机器后失效); 写入网卡配置文件(永久修改,重启网卡/机器后依旧有效);ifconfig修改网卡参数(临时)# 给eth0网卡配置IP地址ifconfig eth0 192.168.1.56 # 给eth0网卡配置IP地址,并加上子掩码ifconfig eth0 192.168.1.56 netmask 255.255.255.0 # 给eth0网卡配置IP地址,加上子掩

2022-02-11 11:34:40 2766

原创 win10/win11安装qt4.8

1. 下载安装包首先需要下载qt4.8和编译器mingw4.8.2的安装包,下载地址如下qt-opensource-windows-x86-mingw482-4.8.6-1.exe -https://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-mingw482-4.8.6-1.exe i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z - https://download.qt..

2021-12-22 16:39:37 3376

原创 QTextBrowser显示图片(图片文字对齐)

有时候,除了文字,还需要在QTextBrowser显示一些图片,图标之类的。语法实际上也很简单,用QTextBrowser的insertHtml(QString)就行。理论上下面这样的代码就可以了QString html = "<div style=\"height=20\"> \n" "<img src=:/images/message/warning.svg style=\"vertical-align:middle\"> \n" "<span>Te

2021-12-03 09:56:26 3588 2

原创 PhotoShop使用1 - 图片的新建,裁剪,图像大小的修改,移动工具

新建无特殊情况的话,一般分辨率写300ppi,这样会更清楚,不过同时图像体积占用会变大,对清晰度要求不高的话72ppi也是可以的,背景颜色一般选白色从剪贴板粘贴图片到PhotoShop(复制某张图片后新建里就会出现剪贴板这个选项)新建成功后然后Ctrl + V粘贴到PhotoShop中即可打开图像的裁剪1. 点击裁剪按钮2. 裁剪过程如果只是裁剪个大概,用鼠标在四周拖就行了;如果是精准裁剪,比如1000 * 1000的图...

2021-10-28 10:05:27 3043

原创 常用图片格式介绍

位图:像素点组成的图像,也是最常见的图像,放大后会失真,二次编辑会产生永久破坏性; 格式:jpg, png, bmp, tiff, gif等矢量图:矢量图是使用直线和曲线来描述的,根据数学公式和几何特性生成的图形。矢量图只能靠软件生成,特点是放大后图像不会失真,可二次编辑,适用于动画设计、文字设计和一些标志设计、版式设计等; 格式:svg, ai, cdr等HDR高动态范围图:附带光照信息的图像,一般用于摄影师拍照;...

2021-10-28 09:46:08 3808

原创 QTreeView导航菜单效果

最近用墨刀做原型,感觉墨刀上的导航菜单控件还是挺好看的(至少比原生的QTreeView好看)。重新用paintEvent()绘制一个貌似也不难,但是有现成的QTreeView在,还能为每个节点设置QVariant数据(给每个节点对应的页面使用),还是美化一下QTreeView,用现成的QTreeView吧。mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#...

2021-10-24 15:01:03 1626 1

原创 Qt模拟Linux终端 1 - Linux指令调用

在一些特定场合中,直接调用Linux系统中自带的终端来执行Linux命令是不太适用的,有时用户就希望能不打开终端,直接在软件界面中输入命令。对于这种情况,可以使用QProcess来实现。Qt对于QProcess的描述如下:The QProcess class is used to start external programs and to communicate with them.To start a process, pass the name and command line...

2021-10-21 00:01:03 3706 2

原创 Qt存储二进制文件

1. 存储基本类型基本类型如int, double, char等,读写时按照其所占字节长度进行读写即可。要注意的是读写顺序一定要保持相同。如先写的int再写的double,那么读取时也必须按照这个顺序来依次读取。write test.datint aaa = 111;double bbb = 222.222;char ccc[4] = "ccc";QFile file("test.dat");if (file.open(QIODevice::WriteOnly | QIODevic.

2021-10-20 10:10:10 3439 1

原创 QTreeView三态复选

在Qt的model/view中,QStandardItem是可以设置复选效果的,在QTreeView和QTableView等中以QCheckBox的样子显示出来。item->setCheckable(true); // 设置是否能复选(默认只有√和×两种形态)item->setTristate(true); // 设置在复选效果中,是否能出现三态(即部分选中的■)在低版本的Qt中,QTreeView实现复选需要手动进行逻辑设置,只设置个...

2021-10-13 14:59:11 1843 2

原创 C++/Qt中的内存管理

智能指针(Smart Pointer)和原始指针(Raw Pointer)智能指针负责对象生命期管理(这里假设智能指针作为类的非静态成员变量,并借助类的构造函数和析构函数来完成动态对象的自动化管理):所以动态对象的创建和析构全都由unique_ptr和shared_ptr来做; 原始指针不负责对象生命周期管理:原始指针擅长调用动态对象,原因就是简化接口。如果这时候使用shared_ptr来传递动态对象和使用原始指针来传递动态对象本质上没有区别,为了简单还是传递原始指针更好一些;Qt的半自动化

2021-09-10 09:28:58 442

原创 QCustomPlot使用

设置x轴,y轴的颜色ui->plot2d->xAxis->setBasePen(QPen(QColor(227, 227, 227), 2));ui->plot2d->yAxis->setBasePen(QPen(QColor(227, 227, 227), 2));设置刻度QPen pen;pen.setColor(QColor(227, 227, 227));pen.setWidth(1);// 主刻度ui->plot2d-&g.

2021-09-09 16:18:29 257

原创 JsonCpp使用

在Qt5中已经集成了Json相关的类,直接使用即可,很方便。但是Qt4没有,需要使用第三方的库来处理Json,JsonCpp就是一款基于c++的开源跨平台的三方库。Json格式说明数据由逗号分隔 大括号保存对象 中括号保存数组 可嵌套下面是两个例子{ "name": "张三", "gender": "男", "age": 18, "school": { "name": "清华大学", "major": "计算机科学与技

2021-07-18 01:38:58 517 2

原创 RedHat/CentOS安装glibc2.14

glibc介绍glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,而Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。glibc除了封装linux操作系统所提供的系统服务外

2021-07-10 02:00:32 3324

原创 变电相关名词解析

组态文件SCL(Substation Configuration Language):变电站配置语言SCD(Substation Configuration Description):全站系统配置文件,描述所有IED的实例配置和通讯参数,IED之间的通讯配置以及变电站一次系统结构,由系统集成商完成CID(Configured IED Description):IED实例配置文件,由装置制造厂商使用装置配置工具根据SCD文件中与特定的IED的相关信息自动导出生成。CID文件和其它配置信息的下载应.

2021-07-05 00:09:17 3699

原创 Ubuntu安装qt4.8

由于qt4.8支持的环境比较老,所以ubuntu18 20这些高版本安装时会出现各种问题,最好在14和16下安装,本文的版本是ubuntu16.04。下载并安装首先下载,然后解压,下载地址为:https://download.qt.io/archive/qt/4.8/4.8.6/tar -xzvf qt-everywhere-opensource-src-4.8.6.tar.gz 然后cd进解压目录中,输入./configure,然后选择o回车,接着输入yes回车./config

2021-07-04 17:31:53 2161 2

原创 Linux下Qt开发遇到的问题总结

QtCreator中无法输入汉字sudo apt install fcitx-frontend-qt5

2021-06-22 11:37:49 1015

原创 Qt(QTextBrowser)点击链接打开浏览器/文件夹/文件

auto text_browser = new QTextBrowser(this);text_browser->setFocusPolicy(Qt::NoFocus);text_browser->setOpenLinks(false);text_browser->setOpenExternalLinks(false);// 点击打开文件夹/文件text_browser->append("<a href=\"file:///C:/Users/wangjun/...

2021-06-14 14:06:45 4433

转载 Python - os模块

OS模块Python的os模块封装了常见的文件和目录操作,本文只是列出部分常用的方法,更多的方法可以查看官方文档。下面是部分常见的用法:方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 os.remove 删除文件 os.getcwd 获取当前工作路径 os.walk 遍历目录 os.path.join 连接目录与文件名 os.path.split 分割文件名与目录

2021-06-12 22:25:45 76

原创 QML轮播图效果

mian.qml:qml界面代码 datamodel:自定的数据Model,包含一个图片地址和一句说明文字,用于填充qml界面 mian.cpp:加载qml界面,设置datamodel,显示quickviewmain.qmlimport QtQuick 2.8import QtQuick.Window 2.2Rectangle { id: root property int itemCount: 5 visible: true width...

2021-06-08 23:27:12 791

原创 pip使用总结

安装某包pip install vtk # 下载默认最新版本的vtkpip install vtk==9.0.1 # 下载指定版本的vtk下载某包pip download vtk # 下载当前包及其依赖到当前目录下在当前目录下安装已下载的包及其依赖pip install --no-index --find-links=file:./ vtk卸载某包pip uninstall vtk升级某包p...

2021-06-06 17:16:38 175

原创 Pyenv-virtualenv使用

介绍:pyenv-virtualenv是pyenv的一个插件,作用如同virtualenv一样,是用来管理虚拟环境的,配合pyenv主体使用可做到python的版本管理及虚拟环境的管理安装:在正常安装了pyenv的情况下,pyenv-virtualenv也是随之被安装上的1. 创建虚拟环境在test目录下,创建一个名字为venv38,python版本为3.8.5的虚拟环境pyenv virtualenv 3.8.5 venv38 # 如果不加3.8.5即不指定版本,则会使用当前系统.

2021-06-06 11:37:17 1962 3

原创 Python版本的管理 - Pyenv使用

pyenv:管理 Python 本身的多个版本;pyenv-virtualenv:管理不同版本 Python 的虚拟环境;linux安装1. 首先安装所需依赖,在Ubuntu/Debian/Mint(Debian系)上:sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget cu.

2021-06-06 11:26:57 456

原创 Python虚拟环境介绍及使用

为什么需要虚拟环境?这里的环境,指的就是 Python 代码的运行环境。它应该包含以下信息:Python 解释器,用哪个解释器来执行代码? Python 库的位置,该去哪里import所需要的模块? 可执行程序的位置,比如说安装了pip,那么pip命令是在哪里?由于每个项目的情况都可能不一样,比如这个项目用的是vtk 7.1,另一个项目用的是vtk 9.0。如果不进行环境隔离而是全局安装,就会导致包的冲突从而出现问题,这个时候让每个项目都拥有一套独立的Python环...

2021-06-05 21:47:21 2368 1

原创 C++常用字符串操作

判断数据为何种类型// 使用typeid()可判断数据类型int num = 100;if(typeid(num) == typeid(int)) cout << "数据类型为int" << endl;if(typeid(num) == typeid(string)) cout << "数据类型为string" << endl;字符串分割vector<string> split(str.

2021-05-29 16:20:33 130

原创 Python打包

将py代码生成exepyinstall -F -w -i 'xxx.ico' xxx.py-F: 产生单个可执行文件-w: 不显示控制台-i: 添加图标ModuleNotFoundError: No module named 'vtkmodules.all'import vtkmodules.all as vtkfrom vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor..

2021-05-20 00:18:38 812 3

原创 Python示例代码

各种情景下的初始代码,方便直接拷贝修改Qt Mainwindow窗口from PyQt5.QtCore import Qtfrom PyQt5.QtGui import QIcon,QPixmap,QFontfrom PyQt5.QtWidgets import (QApplication, QMainWindow, QToolBar, QLabel, QCheckBox, QHBoxLayout, QVBoxLayout )class MainWindow(QMainWindo.

2021-05-19 23:47:51 335

原创 Linux下Python使用遇到的问题总结

不同python版本之间的切换// 查看列表update-alternatives --list python// 添加不同的python版本到列表sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2// 切换python版本su

2021-05-13 22:52:32 201

原创 Qt中浏览器QWebEngineView的使用1

当今的桌面软件开发,web化逐渐成为了趋势,VSCode,Atom等一系列优秀的软件都是基于github家的Electron(使用html,css,js来进行开发的桌面端应用程序),通俗得来说,就是把网页打包成一个在桌面运行的程序。优点是开发快速,前端也能开发桌面软件,并且跨平台,缺点是性能差速度慢,不能做成大型商业软件。类比一下notepad和vscode的打开速度就知道了。回到本篇博客的目的,我们为什么要在Qt中嵌入一个网页?为什么不直接使用Electron开发整套软件?1. 由于web端.

2021-04-25 23:32:38 11958 3

VTKExamples

github上的VTKExamples,因为文件比较大,有275m,传到csdn上方便下载。

2020-05-10

编译好的vtk8.2.0的库

编译好的vtk8.2.0的库,整个库是x64的,文件有lib,include,bin,其中lib和bin分为Debug和Release两版

2020-05-09

qwtpolar-spectrogram

qwtpolar中的案例spectrogram,一个极坐标的热图。qwtpolar是qwt的第三方用来生成极坐标图的库。

2020-04-25

qwtpolar-1.1.1.zip

qwtpolar的安装包,由于qwtpolar是存在sourseforge上的,而这个网站实在是太慢了,故下载下来放到csdn供大家下载

2020-04-25

qt虚拟键盘(26键和数字键)

用qt5写的虚拟键盘,具有数字键盘和全键盘两个尺寸,全键盘是26键,数字键盘是9键。按切换键可以切换键盘。

2019-07-08

Qt图片浏览器

qt写的图片浏览器源码,可以打开图片,进行放大缩小正常尺度,界面纯代码编写。

2019-03-29

QT代码创建界面(MenuBar,ToolBar)

qt5用代码实现界面创建,工具栏toolbar和菜单栏menubar。

2019-03-28

winform校园通

winform编写的程序,界面清新美观,具有查看校园新闻,学校介绍,查看课表,每日一句,资源分享,周边推荐等功能。

2018-11-06

爱普生L4158驱动

爱普生打印机L4158的windows驱动,可运行在win xp,win7,win10上。

2018-11-06

qttabbarv1.5.0.0

在windows文件资源管理器上显示多标签栏,像浏览器的标签栏那样,非常方便。

2018-11-05

空空如也

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

TA关注的人

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