前言 在上一篇中,我们基本上完成了主要功能的实现,剩下的一些导出.进程子模块信息等功能,留到后面再来慢慢实现.这一篇来讲述如何对主界面进行个性化的定制.Qt库提供的只是最基本的组件功能,使用这些组件开发出来的软件基本上个性可言.如果开发的产品只讲究实用性,那么UI体验尚可搁置一边.如果要面向客户推广部署,那么改善一下UI视觉效果对于产品的推广也会有莫大的帮助.闲话不多说.先来对比一下界面个性化定制前后的效果: 先不说界面美化之后,界面有多绚丽.震撼人心.但是,突出产品主题.彰显个性这块倒是不折不…
导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统中运行的进程信息以及系统中已安装软件信息.说出来也就这么两句话,然而做起来的时候,问题却层出不穷.另外,一直想研究一下Qt中的样式表(Style Sheet)的使用,就这这个机会实践了一下,也算收获颇多. 这一篇主要讲该工具的底层实现.前面也说过,这个小工具总共有有两个功能:查看进程信息和已安装软件信息.因此…
导读 一款流行的软件,往往会在功能渐趋完善的时候,通过改善交互界面来提高用户体验.毕竟,就算再牛逼的产品,躲藏在糟糕的用户界面之后总会让用户心生不满.界面设计需综合考虑审美学.心理学.设计学等多因素,是一份精细活.这篇博文仍然以Qt的使用为主旨,探讨一下在Qt中如何进行系统托盘的个性化定制. 介绍 首先我们看看几款知名软件的系统托盘设计: 上图是金山卫士的系统托盘菜单设计.我们稍作分析:整个托盘菜单窗口是个半透明的设计,窗口边框进行了圆角处理.底部的菜单项包含三个Button,倒数第二.三个菜单…
引言 上一篇中讲述了工具箱的添加.通过一个水平布局管理器,我们将一系列的工具按钮组合到了一起,完成了工具箱的编写.本文在前面的基础上实现窗体分割效果.堆栈式窗口以及Tab选项卡. 窗体分割 窗体分割是一个常见的功能,尤其在一些IDE中用的非常广泛.主要是窗体分割能够在视觉上对程序功能进行分组分类,在保证界面美观的同时还能保证内容井井有条,何乐而不为呢?Qt中提供了一个用于分割窗体的类:QSplitter.这个类的使用也非常简单,准备好需要分割的窗口,设置好分割方向和比例即可.不过值得注意的是,Q…
引言 又有许久没有更新了.Qt,我心爱的Qt,为了找工作不得不抛弃一段时间,业余时间来学一学了.本来计划要写一系列关于Qt组件美化的博文,但是写了几篇之后就没坚持下去了.技术上倒是问题不大,主要是时间不够充裕.这段时间写几篇关于界面整体设计的博文,从最基础的界面元素开始,到最后构建一个页面元素丰富的桌面应用程序.Trojan Assessment Platform是一个原型设计项目,只是实现了有限的一部分功能.远远还称不上是一个评估平台.这里仅仅侧重于用Qt做界面的实现. 界面预览 首先还是看看…
引言 在上一篇中讲述了主窗体的创建和设计.主窗体的无边框效果.阴影效果.拖动事件处理.窗体美化等工作在前面的博客中早就涉及,因此上篇博文中并未花费过多笔墨.这一篇继续讲述工具箱(Tool Button)的实现.另外,在实现的过程中还做了另外一个贴心的小功能:可伸缩的侧边栏.不过后来发现应用起来后效果不佳,于是就没在主窗体中加入这个功能了,单独做了一个demo作为示范. 工具箱的实现 工具箱是将若干的工具按钮组织在一起,为用户提供简便导航功能的一个组件.在Qt中实现这个功能不难,Qt库本身就提供了…
预备 继上篇<浏览器缓存查看器QCacheViewer>之后,本篇开始QCookieViewer的编写.Cookie技术作为网站收集用户隐私信息.分析用户偏好的一种手段,广泛应用于各大网站.对于网站的精准营销.使用反馈.数据挖掘等具有不可估量的作用.Cookie按照创建者的不同,分成两类:服务端创建的Cookie和客户端浏览器创建的Cookies.那么,作为用户想要查看当前主机的Cookies文件该怎么办呢?最简单的办法是:直接到Windows目录下去找!Cookies文件是以ASCII码字符…
介绍 Cache技术广泛应用于计算机行业的软硬件领域.该技术既是人们对新技术探讨的结果,也是对当前软硬件计算能力的一种妥协.在浏览器中使用cache技术,可以大幅度提高web页面的响应速度,降低数据传输延迟,提高web用户的体验.因此,客户端在浏览网页的过程中,会在本地缓存许多文件.随着使用时间增长,本地缓存的文件日渐增多.对于用户来说,查看本地主机当前的缓存文件数目和种类成为一种迫切的需要. 作为主项目的一部分功能,我们需要完成这样一个浏览器缓存查看器.在网上偶然看到了一款这样的软件:IECa…
前言 虚拟语法树(Abstract Syntax Tree, AST)是解释器/编译器进行语法分析的基础, 也是众多前端编译工具的基础工具, 比如webpack, postcss, less等. 对于ECMAScript, 由于前端轮子众多, 人力过于充足, 早已经被人们玩腻了. 光是语法分析器就有uglify, acorn, bablyon, typescript, esprima等等若干种. 并且也有了AST的社区标准: ESTree. 这篇文章主要介绍如何去写一个AST解析器, 但是并不是…
ROS与Matlab系列:一个简单的运动控制 转自:http://blog.exbot.net/archives/2594 Matlab拥有强大的数据处理.可视化绘图能力以及众多成熟的算法函数,非常适合算法开发:在控制系统设计中,Simulink也是普遍使用的设计和仿真工具.而ROS系统,则是一种新的标准化机器人系统软件框架.通过ROS,你可以使用大量的示例代码和开源程序轻松地完成机器人编程和控制任务. 如何利用matlat和ROS不同的优势,协同进行机器人设计与仿真? 如何用matlat程序通…