新潮技术研究社
这个作者很懒,什么都没留下…
展开
-
Qt5 pyqt5图片编辑器功能函数一篇全搞定:实现图片格式转换、显示、缩放、特效处理(模糊、锐化,浮雕等等)
在本篇的基础上,你可以轻松实现一个自己的图片编辑器哦。无论是图片格式的转换,还是各种效果的展示,基本和目前我们常用的图片编辑器功能雷同了。至于pyqt5界面的编写,大家可以查看我的另外几篇文章,或者静等我的下一篇直接实现出来吧。界面方面,关键无非就是在QtCreator中创建python工程,然后如何你是loadui文件的方式,那就使用findchild去操作界面上的控件。如果你是使用uic先生成ui的python文件的话,那就直接引用,然后像cppQt那样操作界面控件即可。废话不多说了。我建议有原创 2021-07-20 18:53:51 · 1632 阅读 · 0 评论 -
Qt5.9.7 arm版编译配置附带完整源码及编译链
Qt5.9.7完整Arm版编译配置项:在终端输入一下即可,注意修改好自己的user名称,第一行的/home/xxx,请自行修改路径已经编译完成的压缩包如下:Qt5.9.7arm已编译版附源码及编译链.zip:qt-everywhere-opensource-src-5.9.7.tar.xz:mysql-arm.zip:tslib.zip:arm-linux-gnueabihf-gcc.zip:./configure -prefix /home/xxx/Qt5.9.7/5.9.7/arm-li原创 2020-09-02 12:09:30 · 1306 阅读 · 0 评论 -
PythonQt打包发布exe应用注意事项,解决错误no Qt platform plugin found
有时候你没有创建virtual env,而是使用系统自带(你安装python之后的)的python环境,那么很可能会出现即便安装了依赖模块,还是提示你要安装,这样子的话,你可以检查默认python环境和项目python环境是否一致,安装的模块包是否在python安装目的sitepackages目录里或者在C盘的appdata的python下的sitepackages目录里,这块经常会混乱。这里我们直接用pyinstaller就行,因为生成一个exe只需一个命令就行,所以无需界面,无需setup.py。原创 2022-09-16 11:11:42 · 790 阅读 · 0 评论 -
给Python漫画分集标题目录下载工具添加从列表文件下载功能
2.getOpenFileName的使用和C++Qt几乎一模一样,过滤文件格式txt (*.txt)这里可以写多个,可以自己去查Qt说明书,表示当你打开文件浏览窗口的时候,你能看到的文件类型,不写就是全部都可以看到,文件一多,会很难找到你想要的列表文件,所以,建议写上,一般软件都写上。实际上,这个工具已经可以完成很多功能了,只要你稍微修改一下,下载什么图片,什么微信文章,漫画啥的,基本上,问题不大。5.sleep可以不要,1秒的等待,程序更加舒畅,我怕电脑跑得太快,会疯掉,所以加上吧。原创 2022-09-06 18:22:09 · 292 阅读 · 0 评论 -
给Python漫画分集标题下载工具添加线程
上一章,我们给这个python漫画分集标题下载工具添加了Qt界面,使用的是PySide6,大家看源码或许就可以看出来了,除了python语法不同之外,整个Qt库的使用和C++的使用几乎没什么大的改变。所以,如果你不知道在python3里Qt怎么使用,那么你完全可以试试直接用C++Qt的写法,再根据pycharm的代码提示,就可以很容易地进行Qt界面开发了。这里我们先不用Qt的QThread类去创建线程,既然是python写的工具,咱们先使用python自带的线程模块。5.再下一章,待续.......原创 2022-09-05 16:34:13 · 392 阅读 · 0 评论 -
给Python漫画分集标题下载工具开发Qt界面
上一章我们开发了一个简易的漫画分集标题下载器,这一章我们为其开发Qt界面。原创 2022-09-03 19:24:08 · 217 阅读 · 0 评论 -
python抓取漫画网站海贼王分集标题案例
说到爬虫,我们就会想到python,python的网页提取模块让爬虫不再困难。当然了,其他语言都可以做到的。只不过python更方便而已。原创 2022-09-03 07:43:33 · 215 阅读 · 0 评论 -
搜索算法分类整理总结
搜索算法旨在检查元素或从存储元素的任何数据结构中检索元素。常见的是在数组vector,列表list,map,dict等容器中查找某个元素/关键词。根据搜索操作的类型,这些算法一般分为两类:顺序搜索:列表或数组中按顺序遍历并检查每个元素。例如:线性搜索。...原创 2022-07-24 23:48:27 · 1172 阅读 · 0 评论 -
贪心算法分类总结
划分为长度为k和(N–k)的两个子数组,使得总和的差最大。最小生成树的问题求解(Kruskal's和Prim's)查找在给定的到达和离开时间下是否可以进行k次预订。字典序上最大的子序列,使得每个字符至少出现k次。重新排列字符串中的字符,使得没有两个相邻的字符相同。给定时间表的n批次的m个事件的最小房间数。通过删除更大的对来使数组大小为1的最小成本。数字和为N且可被10^N整除的最小数。使数组的GCD成为k倍数的最小操作。...原创 2022-07-21 18:51:50 · 396 阅读 · 0 评论 -
解决问题Python ‘chromedriver‘ executable needs to be in PATH
执行这个py文件之后,出现,chromedriver需要放在PATH变量中的提示,我们直接将chromedriver放在工程目录下即可。这段代码的作用很简单,就是调用chromedriver,打开chrome浏览器,所以,你电脑中需要已经装好了chrome浏览器。现将chrome浏览器打开,再次执行程序,chrome浏览器自动打开代码中的网站。使用pycharmIDE开发,已安装chrome浏览器,新建一个python工程,新建一个python文件,......原创 2022-07-15 01:05:31 · 1425 阅读 · 0 评论 -
Qt5使用eventFilter实现监听ListView列表的按键事件
实现事件监听就需要用到事件过滤器eventFilter,找一个QObject的子类,没有就自己创建一个,在其内实现eventFilter的相关操作代码,如下: class KeyPressEater : public QObject { Q_OBJECT ... protected: bool eventFilter(QObject *obj, QEvent *event) override; }; bool KeyPressEater::eventFilter(原创 2021-08-11 15:49:02 · 518 阅读 · 0 评论 -
Qt使用eventFilter实现监听所有按钮大小变化事件
在Qt中有一个很有意思的Api函数eventFilter()。[virtual] bool QObject::eventFilter(QObject *watched, QEvent *event)这个函数几乎可以作用在所有的控件之上,让你可以“为所欲为”。曾经,我就见过有一哥们,直接那这个函数用到一个label上,然后硬生生地把这个label当成了pushButton,当然了,我也不知道他是为了什么。正如有的人学了设计模式以后,明明可以new出来的一个对象,他非要创建一个factory去create原创 2021-08-11 15:34:28 · 1140 阅读 · 0 评论 -
Qt5/6蓝牙(低功耗)开发步骤总结
蓝牙,无线等功能在以往的Qt4,Qt5前期版本之中其实是没有的,还有一个CAN通信,串口通信,Modbus通信等这些硬件单片机啥的上的功能都是在Qt5后期版本,大概是Qt5.7左右吧,加进来的。所以以往如果你想通过Qt来开发Android APP,还是很困难的。不过现在这些都只是一些流程性的东西而已,我们只要按照步骤去开发就可以了。 蓝牙协议设备到现在已经是4.x的版本,现在的蓝牙通信协议基本都是使用低功耗版本的通信方式去开发的。包括Android8后期的蓝牙开发,我们也同样应该找一些低功耗的案例源码去.原创 2021-08-10 18:26:14 · 2665 阅读 · 0 评论 -
Qt中如何做出CSS那样华丽质感以及3D立体感的按钮?
在Qt界面美化中,我们经常会看到很多特美的界面,很多公司都会让ui设计师给我们做一大堆图片,然后我们就可以很轻松的设置各种控件的图片,就可以完成界面的美观了。不过,作为一个独立的程序员,我们想要在自己的程序界面实现一些美化效果,就不能再想着用图片了,不然就太麻烦了。这时候,我们就可以借用网上的特效控件,来转化为Qt中的QSS代码,当然了,你也可以直接用css代码文件,只是,你需要做很多修改。首先我们来看看网络上的一些css按钮。上面的按钮,css中都会有这样的代码:button { cursor:原创 2021-08-06 14:06:02 · 5239 阅读 · 5 评论 -
QtCreator4.15界面源码全方位解析之侧边导航栏功能实现
上一章主界面的源码功能我们已经大致了解了,现在我们一步一步地来看看QtCreator到底是怎么构建整个界面系统的。从中,我们又可以学到些什么呢?在主界面MainWindow的源码中,我们看到了很多其他界面模块的定义。这些模块比起我们平时所写的界面应该要复杂非常多的了,至少看过以后,你不会再觉得界面编程仅仅只是学会几个Qt例子那么简单的了,它不仅仅麻烦,还真的很复杂,一点儿都不比网页前端界面来得容易哦,所以,如果有人问你会不会Qt复杂界面的编写,你至少也应该告诉他,你曾经通过paintEvent来画过一些原创 2021-08-04 16:14:41 · 1016 阅读 · 3 评论 -
QtCreator4.15界面源码全方位解析之主界面功能实现
在解析QtCreator4.15的源码时,请使用QtCreator4.15,至于Qt的版本随意了,毕竟我们不是直接在Qtcreator上直接编译,而只是拿来看代码而已。不是我不编译,能力有限,尝试过,实在错误太多,没时间去搞。所以从今天起,我带着大家一起来剖析一下QtCreator的编写过程。作用是什么?(重点)你是不是也可以利用QtCreator的代码,首先写一个简化版的QtCreator呢?一个简化版的IDE,嗯,你自己动手写出来的。然后你是不是可以在未来弄一个其他类似的python或者C啥的ID原创 2021-08-03 15:35:27 · 1060 阅读 · 0 评论 -
Qt5保存表格内容到xml文件
延续上一篇的读取xml文件到表格,这一篇我们保存表格到xml文件。废话不多说了,看代码吧,当然了,你还可以适用到树控件。//保存表格为xml文件void XmlHandler::saveXml(TableInfo tableInfo){ QByteArray byteArray; QString xmlPath = tableInfo.fileName; QFile xmlFile(xmlPath); if( xmlFile.open(QIODevice::Write原创 2021-07-20 17:14:27 · 752 阅读 · 0 评论 -
Qt5常用功能之读取xml文件内容到界面表格
本功能比较常用,就是读取一个本地的xml文件,然后将内容显示到界面上的表格当中即可。当然了,你还可以利用这个功能,进行其他的操作,譬如,根据xml的节点文本创建动态组态软件控件,就是动态new 控件,根据类似的需求,json文件也可以这么去操作的,不过,下一篇我们再说吧。直接上代码了:void XmlHandler::readXml(QString xmlPath,TableInfo& tableInfo){ QFile xmlFile(xmlPath); if( xmlFi原创 2021-07-20 09:39:10 · 1600 阅读 · 0 评论 -
python pillow图片处理库编写图片编辑软件之一句代码实现图片格式转换
最近在学习图片处理,发现python里面的pillow库在处理图片时非常广泛地被大家所使用,而很多图片编辑软件的大部分功能都能够找得到。不废话,一句话,上代码,直接运行即可啦!from PIL import Imageimage = Image.open('img/d1.jpg')image.save('d1.bmp')image1 = Image.open('d1.bmp')image1.show()...原创 2021-07-19 23:43:31 · 251 阅读 · 0 评论 -
Qt6 Windows10下任意形状截图工具之检测系统热键及设置热键
看到某个哥们设置个热键的文章,咋看一下,还挺复杂。于是下载了QxtGlobalShortcut的git源码,结果放到Qt6上编译的时候还不成功,嗯,换回Qt5就算了吧。看了看源码,我只想要个检测系统热键的功能,Qt本身设置热键还是挺好用的,没必要非要注册到系统,软件使用的时候热键有效不是更好吗?!没必要搞得系统的热键一堆一堆的。所以我们最终,只需要WindowsAPI的一个函数就可以了:为了方便些,稍微封装了一下:就这么简单,记得include <windows.h>if( !reg原创 2021-07-13 14:56:26 · 188 阅读 · 0 评论 -
Qt6任意区域截图工具之实现鼠标移动画矩形框
要做截图工具,我们大概的思路就是想到qq或者浏览器上那种截图方式,按下快捷键,鼠标一拖,拉出一个截图区域,然后双击或者点保存按钮进行保存所以这里,我们一步一步来:按照我们的需求功能,我们分析一下:想要搞出来一个矩形框,无外乎就是画一个矩形框呗。那要画矩形框,你不能在屏幕上直接画吧?!可以吗?可以的话留言告知我一下,谢谢。那么很明显,我们需要一个画布,什么控件可以当做画布呢?widget,image这类的,或者找找Qpainter类看看怎么画。好了,废话不多说了,上代码吧:#include "m原创 2021-07-13 10:19:08 · 1007 阅读 · 0 评论 -
Qt6Windows下十大常用功能之设置取消窗口置顶
这个功能连接着一个button,如果你是一开始就需要置顶窗口的话,将设置flag的语句放到主界面的构造函数中即可。void MainWidget::slotSetOnTop(bool checked){ if( checked ){ hide(); setWindowFlags(Qt::WindowStaysOnTopHint); show(); }else{ hide(); setWindowFlags(Q原创 2021-07-12 14:58:43 · 730 阅读 · 0 评论 -
ubuntu18.04安装pyqt5错误Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-92
ubuntu18.04安装pyqt5出现错误:Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-92ggdywh/PyQt5/结果一查看,发现是pip的版本太低了。默认系统版本为pip9,所以我们需要更新一下pip的版本更新方式为:python3 -m pip install --upgrade pip因为很多时候,我们安装python,或直接apt install python,导致安装的原创 2021-07-02 18:18:08 · 1178 阅读 · 0 评论 -
Qt5编译的可执行程序在Ubuntu18桌面无法双击运行
Qt5编译的可执行程序在Ubuntu18桌面无法双击运行?原因是编译出来的文件类型是共享库,因此,我们需要在QtCreator编译的时候,在pro文件中添加QMAKE_LFLAGS += -no-pie再次编译成功后,放到桌面,双击选中执行即可。...原创 2021-07-02 16:16:58 · 1479 阅读 · 0 评论 -
Ubuntu18.04虚拟机掉电重启后网卡丢失只剩下lo回环网卡ens33网卡不见了
某天,Ubuntu18.04虚拟机掉电重启后网卡丢失只剩下lo回环网卡执行操作:1.查看所有网卡,ifconfig -a2.执行sudo dhclient ens333. 查看网卡驱动是否还在:lspci –v4. 使能网卡:ifconfig ens33 up5. 重启网络服务:/etc/init.d/networking restart6. 测试:sudo apt update...原创 2021-07-01 17:10:34 · 3761 阅读 · 2 评论 -
pyqt5打包发布可执行exe程序的三种常用方法
1.pip install pyinstaller2.pip install cxfreeze3.pip install py2exe1,pyinstaller生成exe无命令提示窗口出现pyinstaller -w --onefile main.py2,cxfreeze无命令提示窗口出现cxfreeze main.py --target-dir out --base-name=win32gui三种方法中,我最推荐用pyinstaller,因为我直接在pycharm的控制台上就运行通过了,就是原创 2021-06-22 18:39:59 · 2459 阅读 · 0 评论 -
PyQt5中代替QString arg的格式化字符串输出方式
由于PyQt5中没有了QString,所以在某些输出场合,我们需要根据python的语法走了。以往QString(“1232132%1%2”).arg(aa).arg(bb)的形式,换成了,“1232132%s%s” %(aa,bb ) 或者 “1232132{}{}”.format(aa,bb)原创 2021-06-22 10:16:26 · 1002 阅读 · 0 评论 -
Pyqt5桌面开发十大常用功能之一行代码设置qss样式文件
废话不多说了。Qt里面是介样子做的:QFile f(":qdarkstyle/style.qss");if (!f.exists()){ printf("Unable to set stylesheet, file not found\n");}else{ f.open(QFile::ReadOnly | QFile::Text); QTextStream ts(&f); qApp->setStyleSheet(ts.readAll());}原创 2021-06-21 15:43:22 · 251 阅读 · 0 评论 -
QtCreator6.2项目模板文件解析学习之使用json文件动态创建界面
QtCreator6.2中,项目创建的模板文件位置在安装目录的template目录下,譬如我的如下所示:E:\Qt6.2\Tools\QtCreator\share\qtcreator\templates\wizards\projects\qtwidgetsapplication\wizard.json可以看到,这是一个json文件,Qtcreator通过读取这个json文件去创建widzard引导窗口。"version": 1, "supportedProjectTypes": [ "Mes原创 2021-06-20 11:44:59 · 688 阅读 · 0 评论 -
使用QtCreator进行pyqt5开发一分钟上手
在qtcreator中开发python程序一直比较尴尬,虽然大家都知道现在最流行的界面开发框架就是Qt,但是基于各种坑的存在,我们现在虽然很多都是使用Qt做界面,但口头上说到Qt,最大的倚仗就是它的跨平台,可是虽说大家都想要跨平台,却在实际项目中不得不考虑用html5或者python,没办法,坑太多,Qt很成熟,但是也是非常多问题的。而以往在Qt中虽然也能使用python,但纯粹的只是能运行python,属于一个冷门的功能,毕竟我们要开发python程序,还不如使用pycharm呢。毕竟Qt到现在Qt6.原创 2021-06-20 00:03:24 · 2519 阅读 · 0 评论 -
Qt5十大最常用功能之一个函数轻松实现系统托盘图标功能
很多程序在运行的时候都是需要托盘图标功能的,所以托盘功能,基本上可以归纳进最常用的十个之一。简单说一下:托盘功能最主要的功能:1.显示主窗口,因为托盘功能本来就是为了在用户点击关闭按钮之后,程序并不退出,而是不再任务栏显示,转而在托盘区用一个图标代替,所以这个功能显然是必须得了。2.关闭退出,这个功能不需要我多说的了,点主界面的关闭不能退出程序,这里还不能退出,你想闹哪样呢?!3.其他类似于设置程序的配置,窗口置顶等等五花八门的功能就不说了。而具体实现:1.创建托盘2.创建菜单3.创建各个原创 2021-06-09 12:50:59 · 411 阅读 · 0 评论 -
Qt5.9问题解决 Clock skew detected. Your build may be incomplete,has modification time in the future
此问题的出现是由于我的虚拟机在断网的情况下创建了Qt项目中的文件,导致源文件之间的时间戳不一致。这时候,我们需要做的是将build目录删除,在源文件目录下,查看有哪些文件的日期是在将来的,譬如,当前的日期是2021年的,但是你的文件却显示了2022年的哪些,这些文件就需要修改日期时间戳的了。修改方式如下:touch -c xxx.h xxx.ui "2021-2-5 10:33:00"具体时间随意,只要是过去某个时间就行的了。...原创 2021-04-06 10:26:09 · 1005 阅读 · 0 评论 -
Qt5交叉编译Project Error: Unknown module(s) in QT: script-private解决办法
在Qt5的交叉编译过程中,我们首先编译一个最简单的版本,不要有其他插件。sudo ./configure -prefix /home/xxx/Qt5.5.1/arm \-confirm-license \-opensource \-release \-xplatform linux-arm-gnueabihf-g++ \-nomake examples \-nomake tests \-no-compile-examples \-no-openssl然后make &&原创 2020-11-11 18:26:01 · 4818 阅读 · 0 评论 -
使用qemu在Ubuntu16.04上搭建arm嵌入式虚拟机系统
在虚拟机搭建Windows和Unix系统,大家都很熟悉,那么搭建arm嵌入式系统估计大家比较少听说。按照以往的惯例,我们会使用Linux内核,busybox等工具去制作一个arm嵌入式系统,这些系统都是运行在嵌入式开发板上的。这里我们的arm嵌入式系统是运行在x86系统上,即你可以是Windows系统,也可以是Ubuntu等系统。首先我们需要工具:虚拟机软件qemu,桌面版系统和无桌面系统,内核文件debian_wheezy_armhf_desktop.qcow2:debian_wheezy_a原创 2020-10-27 15:45:05 · 730 阅读 · 0 评论 -
Feature ‘alsa‘ was enabled, but the pre-condition ‘config.unix && !config.qnx && libs.alsa‘ failed解决
这个问题主要是Qt多媒体插件中缺少了ALSA音频库,所以我们需要自行先编译ALSA在执行./configure的时候,配置项中ALSA为noQt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux .............原创 2020-10-27 10:42:31 · 2163 阅读 · 2 评论 -
Qt Linux下配置网络IP地址工具网络编辑器源码分析
在Linux下,这里Linux泛指各种Ubuntu等等系统哈,大家各自去试验即可。关键代码如下:主要就是利用两个进程先设置好IP,再设置网关。单独一个QProcess对象好像没法做两件事。完整ui代码看这里哦:networkEditor.zip:请各位自行加入自己的代码中试验,不会加入的可以查看我以往的文章或者自己百度吧。//添加IP QProcess *process = new QProcess; QStringList args; args << "-原创 2020-09-08 09:30:31 · 1493 阅读 · 1 评论 -
Qt创建新窗口时局部静态变量的使用方式
在主界面另外创建一个子界面的时候,我们一般会在头文件中事先创建一个子窗口的指针,然后再去需要的地方初始化它,感觉不是很方便。于是我就试了试用静态指针的方式去创建,感觉好多了。如下图所示,每次点击show出子窗口的时候,指针的地址都没有变哦。证明这样子是可行的。void Network::slotSetIp(){ qDebug()<<__FUNCTION__; static NetworkConfig* networkConfig = new NetworkConfig();原创 2020-09-03 16:58:13 · 579 阅读 · 0 评论 -
Qt创建饼状图案例分析附运行通过源码
在折线图的案例中,我们可以总结一下,创建各种类型的图表通常有以下3个步骤:创建数据系对象QLineSeries *series = new QLineSeries(); series->append(0, 6); ..........创建图表对象QChart *chart = new QChart(); chart->addSeries(ser...原创 2020-03-08 23:58:10 · 480 阅读 · 0 评论 -
Qt创建折线图表分析附运行通过源码
当我们需要用到数据图表,统计图表的时候,在Qt里面也是有这些接口的,一般图表有很多种,以后我们一个一个地分析该如何创建,并且根据不同的情况去创建不同的图表。譬如:QPieSeries饼状图,QLineSeries线形图(折线图),QScatterSeries散点图,QSplineSeries曲线图,QBarSeries柱状图,QAreaSeries面积图这里我们创建一个折线图:折线图源码:...原创 2020-03-08 15:28:36 · 450 阅读 · 0 评论 -
Qt QLineEdit设置字符限制后出现无法删除的现象
在使用Qt的QLineEdit设置了字符限制之后,出现无法删除编辑框里面文本的现象了。QRegExp rxInt("-?\\d{1,3}.?\\d{1,2}"); QRegExp rxDouble("-?\\d{1,3}.?\\d{1,2}"); validatorInt = new QRegExpValidator(rxInt,this); validatorDoubl...原创 2020-01-10 17:30:58 · 1262 阅读 · 0 评论