自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shado_walker的专栏

厚积薄发,用持之以恒的毅力成就君子的自强不息

  • 博客(61)
  • 资源 (8)
  • 收藏
  • 关注

原创 Windows通过某端口号找对应的进程窗口句柄

以下为Qt通过netstat.exe程序获取相关信息(通过端口号获取进程ID) 的姊妹篇,通过端口号找对应的进程号:以上所提及的API,均为Win32的系统API,不涉及Qt的相关方法。

2021-05-15 15:53:11 426 1

原创 Qt通过netstat.exe程序获取相关信息(通过端口号获取进程ID)

以下为手记(懒的再敲一遍,凑合看吧^_^),仅供参考:以上,通过对netstat命令输出的解析,可根据端口号获取进程ID。类似的也可以通过以上方法,启动第三方程序,同 C++程序调用第三方exe进程且该方法更简单。...

2021-05-15 15:48:53 636

原创 C++程序调用第三方exe进程(例如Go语言开发的程序)

通过C++程序,启动第三方exe程序,并进行数据的获取和交互,其详细介绍如下(懒的再敲一遍,手记凑合看吧):以上,凑合看吧,有要交流的伙伴可私信我。

2021-05-15 15:38:35 514

原创 Qt的国际化以及动态切换语言

Qt的国际化步骤如下: 1. 要求:所有界面(.ui文件)要显示的字符串,都用英文表示,如果是在.h或.cpp中需要界面显示的字符串,统一用tr("xxx")包起来。 2. 界面开发完成后,通过使用lupdate.exe对界面的ts文件进行更新(增加新界面的翻译映射),然后进行翻译。 如果使用的是VS插件,则要在工程上选择右键->Qt->lupdate All .ts Files in Project进行更新。 3. 翻译完成后,通过使用lrelease....

2021-05-15 14:10:29 643

原创 使用VLC开源库开发播放器

使用VLC开发播放器,分为如下几步:1. 下载VLC开源库下载VLC开源库,可在官网上下载,地址如下:http://download.videolan.org/pub/videolan/vlc/可以在该网站下载想要的版本(32位或64位,Release或Debug等)2. 建立项目工程以及相关播放界面开发以建立Qt项目为例,根据VS向导进行创建工程,并通过Qt的Des...

2020-02-01 17:37:56 3212

原创 git与svn的区别简介【git进阶】

之前有篇文件专门讲解了git基本命令的用法(git使用手册,有这些就够了^_^),以及git代码合并、代码冲突解决方法与代码推向远端的操作,但是对于一些有SVN使用经验或使用习惯的同仁来说,仿佛天方夜谭,因为相比于SVN的线性提交与TortoiseSVN配合简易的操作,根本用不到命令行去操作,也不必记那么多的命令,是的,在Windows下SVN确实比git好用一些,但是作为一名有追求的程序员,不应

2018-02-05 00:03:24 679

原创 Win32程序与Qt程序对U盘的探测实践

在Windows操作系统下,所有的事件都是以消息为驱动的,因此,当我们插U盘和拔U盘时,也是触发了Windows的消息,我们对此消息进行监听并接收该消息,就可以探测对U盘的插拔。

2017-12-10 23:03:38 968

原创 交叉编译实践-Qt应用程序交叉编译【用cmake工具编译】

上篇介绍了交叉编译的基本原理,以及交叉编译一个简单的HelloWorld程序,这篇将介绍如何交叉编译Qt程序。由于Qt程序依赖的底层以及第三方的相关库太多(比如libGL.so库为OpenGL库,libX11.so库为系统图像库等等),因此在交叉编译时会出现各种问题,下面将其主要的问题归为如下三类:1. 编译器所依赖的库,在编译链接过程中,找到了宿主机的库了,导致文件格式不对,编译链接不成

2017-11-21 17:47:01 4368 2

原创 交叉编译实践-交叉编译原理与简单应用

首先说说交叉编译的事:一个简单的Hello World程序,在x86_64的机器上编译通过后,将其生成的可执行程序拷贝到aarch64的机器上去执行,肯定是执行不通过的,会报文件格式不正确之类的错误,这是因为程序的编译平台环境和程序的运行平台环境不同导致的,x86_64的机器CPU是amd64架构的(复杂指令集),而aarch64机器的CPU是arm架构的(精简指令集),所以,两个不同指令集结

2017-11-12 21:53:18 3487

原创 Qt/C++将web网页POST发送的数据转换成正常字符

最近在做一个用Qt接收从web网页POST发送过来的数据,发现如果网页发送的数据带有汉字,则接收到后没有正常显示为汉字,而是以%XX的十六进制形式显示了,因此琢磨出如下方式,可以将接收的十六进制数据转成正常显示的汉字,方法如下:std::string UrlDecode(std::string &SRC){ std::string ret; char ch; int code; fo

2017-09-30 17:27:26 959 1

原创 QML中鼠标拖动移动ListView中项的位置

在QML开发中,ListView是我们经常用到的控件,可以用它给用户展示出列表,但是往往都是将项目的显示顺序排好后,直接让ListView显示出来,亦或者是知道要移动到具体的那一位置,然后调整数据在ListView中的顺序来达到要求,现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下:import QtQuick 2

2017-08-31 20:04:39 3458

原创 Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)

用su切换到root用户后,运行某些带图形的程序,会报如下错误:(ImageProc_qt:3158): GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion 'G_IS_DBUS_CONNECTION (connection)' failed(ImageProc_qt:3158): GLib-GIO-CRITI

2017-07-25 20:02:17 8808 1

原创 git使用手册,有这些就够了^_^

日常工作中,有了这些git命令,解决你代码提交与合并上的痛点,再也不怕代码和别人冲突了,再也不用为合并代码、冲掉别人代码而头痛了。。。一、clone仓库中的代码git clone [svn_addr].git,其中[svn_addr].git为代码仓库的地址。二、提交本地test分支作为远程的master分支git push origin test:master

2017-07-16 23:19:36 614

原创 QML中圆形进度仪表盘控件的使用

在之前的文章中,有一篇介绍了在QML中制作自定义圆形进度条的文章,在那篇文章中,主要是写了如何在QML的Canvas上使用2D进行绘图。同样是圆形进度条,在这篇文章中,主要介绍QML自己原生的一个圆形仪表盘的使用,其中的主体结构都是QML自己实现的,我们自己只需要根据需要,设置我们想要的样式和属性值,即可达到理想中仪表盘的效果,省去了我们自己绘制界面的过程,是一个很好的控件,希望能够帮助到需要自己

2017-06-14 20:06:16 6231

原创 关于Qt/C++和QML获取屏幕大小方法的总结

在桌面应用程序的开发过程中,获取屏幕(桌面)的大小来定位桌面应用所显示的位置,是桌面开发中经常用到的手段,在Qt开发和QML开发中也不例外,本篇着重介绍Qt获取桌面屏幕大小的两种方法,以及对应的QML中获取桌面屏幕大小的两种方法。首先上图,说明一下屏幕桌面的区域划分:如图:一、Qt/C++获取桌面屏幕大小:    (1)、包含头文件    #include    

2017-04-27 20:10:51 5490

原创 Qt/QML开发支持下载的简单浏览器

之前有篇文章介绍过开发简易浏览器(文章标题:QML开发简单浏览器(加载H5)),当时主要介绍了如何使用QML的WebEngineView开发一个可以进行简单浏览网页的应用(仅仅是进行网页的浏览哦^_^),所以没有涉及到网页中下载的情况,这篇文章主要介绍如何利用QML开发出可以进行下载的浏览器,实现将网上的图片和文件下载到本地。话不多说,先奉上【干货代码】,再奉上【效果图】,最后有【深度解析

2017-03-31 10:54:51 4670 2

原创 QML中ListView-GridView等对象的数据模型更新详解

(1)具体的行更新QModelIndex modelIndex = this->index(indexItem, 0, QModelIndex());emit this->dataChanged(modelIndex, modelIndex);其中indexItem为要更新的行索引。同理,具体列更新如下:QModelIndex modelIndex = this->index(

2017-03-21 19:32:28 3468 1

原创 JS递归调用定位ListView应该定位的项

继续上篇的定位问题,由于时间原因,上篇的定位不是很准确,下面将准确定位的JS代码共享出来:function getIndexFromLab(lab) { var arr = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y

2017-03-10 18:14:03 965

原创 QML中ListView数据的分组与定位显示

在QML中ListView的数据分组与定位显示时,以前使用ListView进行数据分组时,都是在model中加入分组数据(分组的项),然后将model中的数据排好序后全部显示到ListView中,这样做也能达到数据分组的目的,但是数据维护太费力,我们自己好做的事情太多,埋下的隐藏问题也就越多。这次介绍ListView自身的艺术section属性,可以达到数据分组显示的作用,通过设置如下三个属性

2017-03-10 18:05:10 5041 1

原创 QML中ListView的高级使用之增加ScrollBar以及设置ScrollBar的样式

用过QML进行列表显示的同仁肯定都知道,QML中的ListView是默认没有ScrollBar的,超出部分的列表项只能通过滚动鼠标滚轮进行显示,但是我们又知道QML中的ScrollView是有ScrollBar的,因此,我们可以通过在ScrollView中嵌入ListView并且重写ScrollView的style来实现列表的显示以及ScrollBar的显示(重写ScrollViewStyle费时

2017-03-06 14:16:25 15035 5

原创 解决Qt5应用在麒麟Linux下不能输入中文问题

解决Qt5在麒麟Linux下不能输入中文的问题,需要了解fcitx并安装fcitx的插件库到应用程序中并启动fcitx,Fcitx是 (Free Chinese Input Toy for X) 的英文缩写,中文名为小企鹅输入法,是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案,彻底解决在GNU/Linux下没有一个好的中文输入法的问题。用Qt编写

2017-02-28 20:07:39 4820 1

原创 在QML树控件TreeView的使用(下)

在QML树控件TreeView的使用(上)篇中,主要介绍了TreeView的使用以及数据的加载显示,在本篇中,将主要介绍TreeModel类的增加数据与删除数据,对树控件TreeView的更新操作。首先,在TreeView的某个节点增加数据如下:void TreeModel::appendChild(const QModelIndex& index){ TreeItem* clickI

2017-02-27 18:36:22 4307 2

原创 QML树控件TreeView的使用(上)

在Qt5.5之前是没有树控件的,我们在使用时用的是ListView来构造出一个树,Qt5.5之后的QML开发阶段,有了树控件TreeView,本篇着重记录QML的TreeView的使用。根据MVC分解文件(类)如下:TreeController.h TreeController.cppTreeModel.h TreeModel.cppTreeItem.c TreeItem.cpp各

2017-02-22 19:39:34 17451 3

原创 解决你的乱码难题(Qt转码与char和utf8的互转)

在跨平台的开发中,字符串的转码显得相当重要,稍有不慎,将会出现乱码的情况,在这里,首先说一下Qt的QString中几个关于转码的函数:(1)QByteArray toUtf8() const;(2)std::string toStdString() const;(3)QByteArray toLocal8Bit() const;(4)QString fr

2017-02-21 22:02:29 7431

原创 将指定文字写入QImage中并保存成图片

在实际项目中,我们往往想让指定的文字连接成一个整体,不让用户对显示的文字进行拆分复制等操作,只进行显示,也就是说,我们想让部分字符串以原子的形式显示给用户,例如,在即时通讯软件中,我们在群里@一个人是,当补全成功后,即为一个图片显示在编辑框中,如下图:我们只能对@的这个人名整体进行操作,这就用到了接下来讲的东西:将字符串写入图片中显示并将图片保存到本地,其主要代码如下://======

2017-02-20 19:11:43 14119 1

原创 MacOSX上的NFS文件共享

在MacOSX上接触过rsync方式文件共享和NFS方式文件共享,两种方式的基本使用方式如下:1. rsync方式:    这种方式和scp用法很像rsync file1 user@host:/xx/file2    如果传输目录,需要加一个-a参数。如果传输目录过程担心传递发生意外问题,可以空跑一次,就是模拟一次传输,并不是真的传过去。-n是模拟,-v是看到详

2017-02-13 20:01:42 8734 1

原创 Linux系统下alias重命名的命令,如何调用原生命令呢?

在Linux系中,对于已经利用alias重定义别名的命令,如何在脚本中使用原命令?例如想使用cp的原命令,使得目标文件存在是直接覆盖,而不是进行确认是否覆盖(弹出是否覆盖是因为为了安全起见,好多Linuxer对cp命令进行了alias cp `cp -i`重命名了)。可以使用: \cp 命令,即在原命令前加上'\',这样,执行时用的就是原始的命令,而不会使用alias重命名的命令。

2017-02-13 16:35:26 2749

原创 在MacOSX上安装Java环境

在MacOSX上安装Java:由于想部署一套统一的打包平台,包括Windows,Linux和MaxOSX,因此,准备选择用Jenkins平台,但是Jenkins是依赖于Java环境的,所以,就必须要在节点机器上安装Java,包括JRE(Java Runtime Environment)和JDK。刚开始登录Jenkins时,浏览器就会弹出需要安装Java Runtime Environmen

2017-02-10 18:05:27 29673

原创 QML实现Label的文字选择与右键各操作

在QML中,原生的Label是不能够进行鼠标的选中,复制,全选等操作的,仅仅只能用于简单的展示文字,但是在实际开发中,往往我们需要给用户展示一些信息,而且要支持可以用鼠标进行选择文字,并进行复制操作,所以,用QML中的Label控件显然是不行的,因此考虑重写控件实现以上功能:import QtQuick 2.2import QtQuick.Controls 1.2 Rectangle {

2017-02-09 18:36:29 7214

原创 在MaxOSX系统上安装gdb并给gdb制作证书

在MacOSX系统上是默认没有安装gdb的,这给MacOSX应用开发人员调试OSX应用程序带来一定困难,因此在MacOSX上安装gdb对应用程序进行调试是一个很好的选择。但是在MacOSX上安装gdb并不想在Linux上那么容易安装,他有一定的限制,首先得从GitHub上获取gdb并安装,然后还必须得给gdb进行制作证书,这样才能够正常使用gdb进行调试。接下来对MacOSX上安装gdb以及给

2017-02-06 19:04:46 2463

原创 QML开发简单浏览器(加载H5)

QML开发浏览器以及加载HTML5页面,主要利用QML的WebEngineView可实现对网页的加载。其代码如下:import QtQuick 2.4import QtQuick.Layouts 1.2import QtQuick.Controls 1.4import QtQuick.Controls.Styles 1.4import QtWebEngine 1.1Rectan

2017-01-26 10:27:12 6951 1

原创 QML实现渐变侧滑效果

用QML可以实现渐变滑出效果(从侧边慢慢滑出),效果不好截图,可复制如下代码到test.qml文件中(引入必要的头,如import QtQuick 2.4 ^-^),然后用qmlscene.exe进行运行查看效果。代码如下:Rectangle { id: root width: 300 height: 500 Rectangle { id

2017-01-25 16:07:59 1986

原创 QML圆形图像的制作与图像置灰效果

在用QML开发界面时,往往我们想将一个方形的图片显示成圆形,类似于早期QQ的圆形图像,许多人想到用radius属性与clip属性进行尝试,但是,始终是没有成功,看来Qt还是没有强大到一定程度啊,哈哈哈。接下来我就简单码上几句实现圆形图像的方法,以及将彩色图像置灰(放QQ离线)的一下方法:一、将方形图片圆形显示代码如下:Rectangle { id: img

2017-01-25 15:21:04 5475 1

原创 用QML实现简单音视频播放器的实践

用QML的MediaPlayer控件配合VideoOutput对可以对音频文件和视频文件进行播放,代码如下:VideoOutput {    id: video_out    anchors.fill: parent    source: mediaPlayer} MediaPlayer {    id: mediaPlayer    source: "file

2017-01-22 17:58:32 8980 1

原创 Qt源码重新编译QtMultimedia模块解决XP播放视频问题

当用qml的MediaPlayer在XP系统下播放视频时,会报错:QtMultimedia : defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer”. 这时需要修改源码重新编译Qt的QtMultimedia模块,使用重新生成的dsengine.dll库。

2017-01-22 17:53:25 3959 2

原创 Linux下的句柄泄露(打开文件数,类比句柄泄露)查看与修改

Linux系统默认的最大文件句柄数(打开文件数,Linux下一切皆文件,这里仅做类比句柄描述),系统默认是1024。用ulimit -n进行查看。当存在句柄泄露没有释放时,系统会报错:Too many open files。 查看进程打开的文件句柄数量# lsof -n | awk '{print $2}'| sort | uniq -c | sort -nr | grep 过滤条

2017-01-19 19:16:25 3145

原创 Qt进程的创建及注意事项

以下介绍QProcess类在使用过程中的方法以及注意事项:QProcess的作用是在当前进程中创建一个新的进程,来调用外部程序处理完成一些任务而不影响本进程的继续执行,起用法如下:1. 运用QProcess类创建新进程:QProcess proc = new QProcess();2. 链接进程退出时返回状态的槽函数:QObject::connect(proc, SIG

2017-01-10 23:22:49 4391

原创 Qt实现图片的简单压缩

在编程过程中,涉及到网络传输或资源加载时,过大的图片往往是编程人员的噩梦,加载时间过长,体验效果差,特别在即时通讯的发送图片时,大图往往半天加载不出来,于是,先对图片进行压缩,暂时显示模糊图片,然后下载大图最后更新下载的大图,这一过程成为解决大图片加载过慢体验效果差的关键。QImage提供了缩放图片的函数scaled,并且可以用参数指定”快速缩放(FastTransformation)”还是”

2017-01-04 19:40:27 12054

原创 Qt在Mac OSX下的系统菜单添加

标题:Qt在Mac OSX下的系统菜单添加头文件:#include 方法:QAction minAction = new QAction(tr("Min"), this);minAction->setShortcut(QKeySequence(tr("Ctrl+M")));QAction maxAction = new QAction(tr("Max"), this);ma

2016-12-28 19:46:39 6116 4

原创 Windows与Linux动态库的两种加载方式

Windows上的动态库(dll)加载方式有两种:1.静态加载,运用#pargma comment(lib, "xxx.dll")方式,这种方式需要 头文件,lib文件和dll文件配合使用,运行时是直接将动态库加载到内存中的,运用起来也比较方便2.动态加载,运用LoadLibrary(dllName)方式,这种方式只需要头文件和dll文件就可以运行,需要时加载,不需要是用FreeLibra

2016-11-25 17:35:56 4619

Qt中DBus的Adaptor-interface通讯方式

DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式※

2017-08-18

Qt中DBus通讯方式(Adaptor-interface方式)

DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式※

2017-08-17

Qt中DBus通讯方式(Interface-Connection方式)

D-Bus是一种高效低耗的进程间通讯(IPC)方式,可以进行不同层次进程(系统级进程与用户级进程)见的通讯,使用D-Bus可以给我们提供很方便的进程间交流。 Qt中QDBus的Interface-Connection通讯方式方式相比于Adaptor-Interface方式较为简单,这种方式不需要XML文件,也不需要自动生成的adaptor类和Interface类,给用户提供更简便的使用方式。

2017-08-17

解决Qt5在麒麟Linux下不能输入中文问题

解决Qt5在麒麟Linux下不能输入中文的问题,需要了解fcitx并安装fcitx的插件库到应用程序中并启动fcitx。Fcitx是 (Free Chinese Input Toy for X) 的英文缩写,中文名为小企鹅输入法,是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案,彻底解决在GNU/Linux下没有一个好的中文输入法的问题。

2017-02-28

QML树控件TreeView的使用

在Qt5.5之前是没有树控件的,我们在使用时用的是ListView来构造出一个树,Qt5.5之后的QML开发阶段,有了树控件TreeView,本篇着重记录QML的TreeView的使用(包括增加树节点和删除节点)。

2017-02-22

LAV Filters编解码相关库以及安装脚本

Qt 中的多媒体播放,底层是使用DirectShowPlayerService,Qt在windows上的多媒体播放功能是使用系统的DirectShow,所以播放视频需要安装DirectShow解码器,LAV Filters就是一款不错的编解码器,包含了LAVAudio.ax, LAVSplitter.ax, LAVVideo.ax以及其依赖的所有动态库,另附了命令行的安装bat脚本,可直接加入自己的代码中进行安装。

2017-01-23

QML的MediaPlayer支持XP播放视频的dsengine.dl库

当用qml的MediaPlayer在XP系统下播放视频时,会报错:QtMultimedia : defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer”.需要修改源码重新编译Qt的QtMultimedia模块,使用重新生成的dsengine.dl,压缩包中是对整个QtMultimedia模块重新编译后生成的库。

2017-01-20

Excel的读和写(读去Excel内容、写条目到Excel中)

读取Excel中的内容,方便用程序操作Excel中的数据,将程序中要总计的数据输出到Excel中,自动生成Excel(.xls),附有代码和详尽的注释,现学现用,方便快捷。

2014-03-29

空空如也

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

TA关注的人

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