Qt/QML的实践积累
文章平均质量分 69
Joven_xxx
以坚持不懈之毅力,将编程进行到底!!!
展开
-
Qt通过netstat.exe程序获取相关信息(通过端口号获取进程ID)
以下为手记(懒的再敲一遍,凑合看吧^_^),仅供参考:以上,通过对netstat命令输出的解析,可根据端口号获取进程ID。类似的也可以通过以上方法,启动第三方程序,同 C++程序调用第三方exe进程且该方法更简单。...原创 2021-05-15 15:48:53 · 724 阅读 · 0 评论 -
C++程序调用第三方exe进程(例如Go语言开发的程序)
通过C++程序,启动第三方exe程序,并进行数据的获取和交互,其详细介绍如下(懒的再敲一遍,手记凑合看吧):以上,凑合看吧,有要交流的伙伴可私信我。原创 2021-05-15 15:38:35 · 562 阅读 · 0 评论 -
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 · 765 阅读 · 0 评论 -
使用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 · 3354 阅读 · 0 评论 -
关于Qt/C++和QML获取屏幕大小方法的总结
在桌面应用程序的开发过程中,获取屏幕(桌面)的大小来定位桌面应用所显示的位置,是桌面开发中经常用到的手段,在Qt开发和QML开发中也不例外,本篇着重介绍Qt获取桌面屏幕大小的两种方法,以及对应的QML中获取桌面屏幕大小的两种方法。首先上图,说明一下屏幕桌面的区域划分:如图:一、Qt/C++获取桌面屏幕大小: (1)、包含头文件 #include原创 2017-04-27 20:10:51 · 5728 阅读 · 0 评论 -
Qt/QML开发支持下载的简单浏览器
之前有篇文章介绍过开发简易浏览器(文章标题:QML开发简单浏览器(加载H5)),当时主要介绍了如何使用QML的WebEngineView开发一个可以进行简单浏览网页的应用(仅仅是进行网页的浏览哦^_^),所以没有涉及到网页中下载的情况,这篇文章主要介绍如何利用QML开发出可以进行下载的浏览器,实现将网上的图片和文件下载到本地。话不多说,先奉上【干货代码】,再奉上【效果图】,最后有【深度解析原创 2017-03-31 10:54:51 · 4819 阅读 · 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 · 3646 阅读 · 1 评论 -
QML中ListView数据的分组与定位显示
在QML中ListView的数据分组与定位显示时,以前使用ListView进行数据分组时,都是在model中加入分组数据(分组的项),然后将model中的数据排好序后全部显示到ListView中,这样做也能达到数据分组的目的,但是数据维护太费力,我们自己好做的事情太多,埋下的隐藏问题也就越多。这次介绍ListView自身的艺术section属性,可以达到数据分组显示的作用,通过设置如下三个属性原创 2017-03-10 18:05:10 · 5229 阅读 · 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 · 1065 阅读 · 0 评论 -
QML中ListView的高级使用之增加ScrollBar以及设置ScrollBar的样式
用过QML进行列表显示的同仁肯定都知道,QML中的ListView是默认没有ScrollBar的,超出部分的列表项只能通过滚动鼠标滚轮进行显示,但是我们又知道QML中的ScrollView是有ScrollBar的,因此,我们可以通过在ScrollView中嵌入ListView并且重写ScrollView的style来实现列表的显示以及ScrollBar的显示(重写ScrollViewStyle费时原创 2017-03-06 14:16:25 · 15351 阅读 · 5 评论 -
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 · 17855 阅读 · 3 评论 -
QML中圆形进度仪表盘控件的使用
在之前的文章中,有一篇介绍了在QML中制作自定义圆形进度条的文章,在那篇文章中,主要是写了如何在QML的Canvas上使用2D进行绘图。同样是圆形进度条,在这篇文章中,主要介绍QML自己原生的一个圆形仪表盘的使用,其中的主体结构都是QML自己实现的,我们自己只需要根据需要,设置我们想要的样式和属性值,即可达到理想中仪表盘的效果,省去了我们自己绘制界面的过程,是一个很好的控件,希望能够帮助到需要自己原创 2017-06-14 20:06:16 · 6458 阅读 · 0 评论 -
git使用手册,有这些就够了^_^
日常工作中,有了这些git命令,解决你代码提交与合并上的痛点,再也不怕代码和别人冲突了,再也不用为合并代码、冲掉别人代码而头痛了。。。一、clone仓库中的代码git clone [svn_addr].git,其中[svn_addr].git为代码仓库的地址。二、提交本地test分支作为远程的master分支git push origin test:master原创 2017-07-16 23:19:36 · 677 阅读 · 0 评论 -
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 · 9150 阅读 · 1 评论 -
QML中鼠标拖动移动ListView中项的位置
在QML开发中,ListView是我们经常用到的控件,可以用它给用户展示出列表,但是往往都是将项目的显示顺序排好后,直接让ListView显示出来,亦或者是知道要移动到具体的那一位置,然后调整数据在ListView中的顺序来达到要求,现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下:import QtQuick 2原创 2017-08-31 20:04:39 · 3608 阅读 · 0 评论 -
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 · 1036 阅读 · 1 评论 -
交叉编译实践-Qt应用程序交叉编译【用cmake工具编译】
上篇介绍了交叉编译的基本原理,以及交叉编译一个简单的HelloWorld程序,这篇将介绍如何交叉编译Qt程序。由于Qt程序依赖的底层以及第三方的相关库太多(比如libGL.so库为OpenGL库,libX11.so库为系统图像库等等),因此在交叉编译时会出现各种问题,下面将其主要的问题归为如下三类:1. 编译器所依赖的库,在编译链接过程中,找到了宿主机的库了,导致文件格式不对,编译链接不成原创 2017-11-21 17:47:01 · 4598 阅读 · 2 评论 -
交叉编译实践-交叉编译原理与简单应用
首先说说交叉编译的事:一个简单的Hello World程序,在x86_64的机器上编译通过后,将其生成的可执行程序拷贝到aarch64的机器上去执行,肯定是执行不通过的,会报文件格式不正确之类的错误,这是因为程序的编译平台环境和程序的运行平台环境不同导致的,x86_64的机器CPU是amd64架构的(复杂指令集),而aarch64机器的CPU是arm架构的(精简指令集),所以,两个不同指令集结原创 2017-11-12 21:53:18 · 3583 阅读 · 0 评论 -
Win32程序与Qt程序对U盘的探测实践
在Windows操作系统下,所有的事件都是以消息为驱动的,因此,当我们插U盘和拔U盘时,也是触发了Windows的消息,我们对此消息进行监听并接收该消息,就可以探测对U盘的插拔。原创 2017-12-10 23:03:38 · 1109 阅读 · 0 评论 -
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 · 7113 阅读 · 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 · 2059 阅读 · 0 评论 -
QML圆形图像的制作与图像置灰效果
在用QML开发界面时,往往我们想将一个方形的图片显示成圆形,类似于早期QQ的圆形图像,许多人想到用radius属性与clip属性进行尝试,但是,始终是没有成功,看来Qt还是没有强大到一定程度啊,哈哈哈。接下来我就简单码上几句实现圆形图像的方法,以及将彩色图像置灰(放QQ离线)的一下方法:一、将方形图片圆形显示代码如下:Rectangle { id: img原创 2017-01-25 15:21:04 · 5555 阅读 · 1 评论 -
运用QML制作圆形进度条效果
QML中原声的进度条为水平或垂直的直线型进度条,可以用ProgressBar配合style: ProgressBarStyle{}进行实现,要显示圆形或扇形进度,就要用画布进行实现,代码如上。原创 2016-06-15 20:03:02 · 8969 阅读 · 3 评论 -
Qt利用setStyleSheet设置样式
Qt中设置按钮或QWidget的外观是,可以使用QT Style Sheets来进行设置,非常方便。可以用setStyleSheet("font: bold; font-size:20px; color: rgb(241, 70, 62); background-color: green");来进行设置,其他的样式介绍如下:font: bold; 是否粗体显示border-image:原创 2016-05-16 15:30:00 · 41826 阅读 · 0 评论 -
QML中ScrollView的自动滚动
在用到QML中的ScrollView时,我们常常会需要让滚动条自动滚动到某个位置,使得某些信息滚动到可视化区域,就可以用下面的方法让其滚动:import Material 0.1import QtQuick 2.4import QtQuick.Layouts 1.2import QtQuick.Controls 1.4import QtQuick.Controls.Styles 1.4原创 2016-04-18 16:50:09 · 13130 阅读 · 1 评论 -
用QML做简单图片查看器(主要介绍QML鼠标的一些操作)
用QML做了一个简单的图片查看器,麻雀虽小五脏俱全,其中涉及了鼠标大小区域覆盖问题,鼠标点击与鼠标点击移动问题,以及滚轮事件问题。详细介绍了鼠标事件的各种处理,以及 onClicked和onPressed的区别,滚轮事件等。原创 2016-04-15 20:26:34 · 3416 阅读 · 0 评论 -
Qt进程QProcess相关
用QProcess创建进程的优势以及方法原创 2016-04-14 09:55:26 · 1297 阅读 · 0 评论 -
QML的Label实现Tooltip提示效果
QML中,对Button进行重写,实现Label的Tooltip提示效果原创 2016-04-13 00:03:58 · 6753 阅读 · 0 评论 -
QML中ListView配合ScrollView实现列表功能
QML中ListView配合ScrollView实现列表功能,鼠标响应事件的处理,鼠标进入退出代理按钮时的处理,以及鼠标进入按钮时进行不覆盖MouseArea的处理原创 2016-04-13 11:36:28 · 10730 阅读 · 1 评论 -
QML中多个RadioButton的互斥使用及Button添加下拉菜单
QML中多个RadioButton的互斥使用及Button添加下拉菜单原创 2016-04-13 12:30:15 · 5691 阅读 · 0 评论 -
Qt多次链接connect函数的信号槽会调用多次问题
Qt多次链接connect函数的信号槽会调用多次问题原创 2016-08-16 11:28:32 · 9128 阅读 · 2 评论 -
Qt信号与槽参数个数与类型问题
Qt信号与槽参数个数与类型问题原创 2016-11-07 11:51:23 · 7141 阅读 · 0 评论 -
Qt实现图片的简单压缩
在编程过程中,涉及到网络传输或资源加载时,过大的图片往往是编程人员的噩梦,加载时间过长,体验效果差,特别在即时通讯的发送图片时,大图往往半天加载不出来,于是,先对图片进行压缩,暂时显示模糊图片,然后下载大图最后更新下载的大图,这一过程成为解决大图片加载过慢体验效果差的关键。QImage提供了缩放图片的函数scaled,并且可以用参数指定”快速缩放(FastTransformation)”还是”原创 2017-01-04 19:40:27 · 12453 阅读 · 0 评论 -
解决你的乱码难题(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 · 7550 阅读 · 0 评论 -
用QML实现简单音视频播放器的实践
用QML的MediaPlayer控件配合VideoOutput对可以对音频文件和视频文件进行播放,代码如下:VideoOutput { id: video_out anchors.fill: parent source: mediaPlayer} MediaPlayer { id: mediaPlayer source: "file原创 2017-01-22 17:58:32 · 9118 阅读 · 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 · 4142 阅读 · 2 评论 -
将指定文字写入QImage中并保存成图片
在实际项目中,我们往往想让指定的文字连接成一个整体,不让用户对显示的文字进行拆分复制等操作,只进行显示,也就是说,我们想让部分字符串以原子的形式显示给用户,例如,在即时通讯软件中,我们在群里@一个人是,当补全成功后,即为一个图片显示在编辑框中,如下图:我们只能对@的这个人名整体进行操作,这就用到了接下来讲的东西:将字符串写入图片中显示并将图片保存到本地,其主要代码如下://======原创 2017-02-20 19:11:43 · 14357 阅读 · 1 评论 -
QML实现Label的文字选择与右键各操作
在QML中,原生的Label是不能够进行鼠标的选中,复制,全选等操作的,仅仅只能用于简单的展示文字,但是在实际开发中,往往我们需要给用户展示一些信息,而且要支持可以用鼠标进行选择文字,并进行复制操作,所以,用QML中的Label控件显然是不行的,因此考虑重写控件实现以上功能:import QtQuick 2.2import QtQuick.Controls 1.2 Rectangle {原创 2017-02-09 18:36:29 · 7391 阅读 · 0 评论 -
在QML树控件TreeView的使用(下)
在QML树控件TreeView的使用(上)篇中,主要介绍了TreeView的使用以及数据的加载显示,在本篇中,将主要介绍TreeModel类的增加数据与删除数据,对树控件TreeView的更新操作。首先,在TreeView的某个节点增加数据如下:void TreeModel::appendChild(const QModelIndex& index){ TreeItem* clickI原创 2017-02-27 18:36:22 · 4453 阅读 · 2 评论 -
Qt进程的创建及注意事项
以下介绍QProcess类在使用过程中的方法以及注意事项:QProcess的作用是在当前进程中创建一个新的进程,来调用外部程序处理完成一些任务而不影响本进程的继续执行,起用法如下:1. 运用QProcess类创建新进程:QProcess proc = new QProcess();2. 链接进程退出时返回状态的槽函数:QObject::connect(proc, SIG原创 2017-01-10 23:22:49 · 4557 阅读 · 0 评论