Qt之使用CQU库快速开发统一风格界面
在使用Qt开发时,肯定是想让开发的项目界面统一风格;不希望每个界面都要程序员用代码去修饰美化以及进行事件处理等等,这样非常繁琐,容易出错而且没有格调;所以我就开发一个动态链接库,封装统一的风格界面、事件处理等等;自己开发的这个库叫做CQU;
CQU库最终提供给用户的文件只有如下三个文件:
- CQU.dll:动态库文件
 - libCQU.a:静态库文件
 - cquwidget.h 头文件
 
先给大家看看效果图,然后再讲述怎么使用CQU动态链接库来达到快速开发的目的
一、效果图



二、CQU外部接口
CQU库提供的外部接口函数如下所示:
static void init();
//设置窗口标题栏文本
void setWidgetTitleText(const QString &str);
//显示隐藏最小化,最大化,关闭按钮
void setWidgetBtnShow(bool bMinBtnShow,bool bMaxBtnShow,bool bCloseBtnShow);
//设置状态栏左标签文本
void setWidgetStatuLeftText(const QString &str);
//设置状态栏左标签图像(会清除原来的文本)
void setWidgetStatuLeftPixmap(const QPixmap &pixmap);
//设置状态栏右标签文本
void setWidgetStatuRightText(const QString &str);
//设置状态栏右标签图像(会清除原来的文本)
void setWidgetStatuRightPixmap(const QPixmap &pixmap);
//设置窗口布局SizeConstraint
void setMainLayoutSizeConstraint(QLayout::SizeConstraint eSizeConstraint);
//设置是否窗口固定大小,不允许拉缩窗口
void setFixSizeBool(bool bFixSizeBool);
//窗口是否将被关闭
bool getClosing();
//窗口当前大小状态
bool getBoolMaxWin();
三、CQU使用演示
这里我创建一个测试工程来演示CQU库的使用
1、使用Qt Creator创建一个GUI工程,工程名字就叫Test吧;把CQU动态库文件(CQU.dll)放到Test工程目录下,把CQU静态库文件(libCQU.a)放到Test工程目录下,同时,把CQU提供的cquwidget.h文件也放到Test工程目录下,得到的目录结构如下图所示:

其中, CQU.dll位于bin目录下,libCQU.a位于lib目录下,cquwidget.h位于工程主目录下
2、编辑Test.pro文件
添加如下两行:
DESTDIR = $$PWD/bin
LIBS += -L$$PWD/lib –lCQU
3、增加窗口
往Test工程里添加一个窗口,这么简单的事情,我就不详细说了;窗口名字叫QCustomFrame类吧,你在这个窗口里随便拖点控件,我拖了些按钮和一些编辑框在窗口上,如下图所示:

这个窗口再普通、朴素不过了吧
4、应用CQU
下面就是使用CQU库来应用你刚才随便创建的窗口,见证奇迹的时刻到了;在main函数里添加如下代码:
QCQUWidget::init();
QCustomFrame *pWidget = new QCustomFrame();
QCQUWidget objCustomBaseWidget(pWidget,true);
objCustomBaseWidget.setWidgetTitleText("CQU Test");
objCustomBaseWidget.setWidgetBtnShow(true,true,true);
objCustomBaseWidget.resize(pWidget->width(),pWidget->height()+HIGHT_MAX);
objCustomBaseWidget.show();
5、最终界面
最后生成的界面如下图所示:

这样方便多了吧;非常容易使用,而且稳定,项目中已使用,呵呵;能够保持整个项目的UI界面风格统一,节省了大量的繁琐工作。
Qt之使用CQU库快速开发统一风格界面的更多相关文章
- DevExpress开发win8风格界面
		
由于近期在对项目软件界面进行优化,找到了一款效果挺炫的插件,DevExpress15.2,可以制作win8可以滑动图标那个界面的效果,不多说,先贴图: (你没看错,这是用C#winform实现的) 可 ...
 - 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
		
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
 - 文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)--SNF快速开发平台3.0
		
实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制, ...
 - MVC通用控件库展示-MVC4.0+WebAPI+EasyUI+Knockout--SNF快速开发平台3.0
		
在我们开发中怎么才能提高效率,就是要有大量的公共组件(控件)可以直接使用而不用自己再开发一遍,既然是公共控件那也得简单实用才行.下面就介绍一下SNF-MVC当中的控件库. 总体控件库展示: 1.通用用 ...
 - C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享
		
由于这几年互联网电商的快速发展,快递公司也进入了快速发展的绝好快速成长期.随着社会的强劲需求公司的业绩年年攀新高.快速发展的公司都需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系 ...
 - Sublime插件库新成员基于APICloud快速开发跨平台App
		
互联网时代强调用户体验,那什么是HTML5跨平台App开发者的编程体验?“不剥夺.不替换开发者喜欢的开发工具,就是人性化的用户体验”,APICloud给出了这样的答案! 重磅发布“多开发工具支持策略” ...
 - Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )
		
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...
 - 关于基于GDAL库QT软件平台下C++语言开发使用说明
		
背景前提 地理空间数据抽象库(GDAL)是一个用于读取和编写栅格和矢量地理空间数据格式的计算机软件库,由开源地理空间基金会在许可的X / MIT风格免费软件许可下发布. 作为一个库,它为调用应用程序提 ...
 - AgileRepository - 一个基于接口的Repository快速开发库
		
AgileRepository 这是一个可以帮助你快速开发Repository的lib.有点像SpringData JPA根据方法名.注解来自动生成查询方法的功能. 对于一些简单的查询,只需要定义接口 ...
 
随机推荐
- [Redis]Redis高级特性的配置及使用
			
---------------------------------------------------------------------------- [Redis安全性] 一 . 默认我们进入Re ...
 - html网页练习豆瓣网
			
html </head> <body> <!-- 头部 --> <header class="header1"> ...
 - layer弹窗和日期
			
这个插件用的最多的是,弹窗和日期
 - java.lang.RuntimeException: Canvas: trying to draw too large(203212800bytes) bitmap.
			
https://www.cnblogs.com/spring87/p/7645625.html 今天我师父发现了一个问题:在更换登录页图片后,更新版本,部分手机打开会闪退.借了一个三星手机后,查看问题 ...
 - EOS的发币逻辑
			
[EOS的发币逻辑] EOS官网的Guide中(参考[1]),描述了如何发自己的Token: 1.创建一个contract. 2.有一些create.transfer.close action. 3. ...
 - tomcat/Java指定加载jar包的路径
			
背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包 但是我需要提供一个和web工程没关系的的jar包管理目录 解决方法: 执行java方法时 ...
 - VMware12上安装CentOS7无法上网问题
			
常安装使用VMware的搭建集群环境,VMare安装后虚拟机默认的是自动获取IP,有时候用的过程中突然XSHELL中断或者需要固定IP上网,遇到几次居然,但忘了步骤,总结一下,省的每次去找资料 环境配 ...
 - python--第十四天总结(js)
			
选择器允许您对元素组或单个元素进行操作. jQuery 选择器 在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例. 关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元 ...
 - mysql学习笔记--表操作
			
一.显示所有表 1. 语法:show tables; 二.创建表 1. 语法:create table [if not exists] 表名( 字段名 数据类型 [null | not null] ...
 - Python+Selenium学习--自动生成HTML测试报告
			
前言 在脚本运行完成之后,除了在log.txt 文件看到运行日志外,我们更希望能生一张漂亮的测试报告来展示用例执行的结果. HTMLTestRunner 是Python 标准库的unit ...