PowerBuilder编程新思维4:钩挂(界面美化与DirectUI)

<第二部分 Outside>

PowerBuilder编程新思维4:钩挂(界面美化与DirectUI)

PB的界面由于其封闭性,一直以来都是最大的弱项。自PB9.0开放了PBNI接口后,开始流行起来一些界面美化方案。目前来看,共分三类。

PB界面美化方案一:Canvas自绘

PBNI接口允许创建自绘组件,开源软件Kodigo创造了Canvas组件,允许PB代码自绘组件界面,由此开创了Canvas自绘方案。当前比较流行的组件库有:

一、Kodigo

二、AdvancedGUI

三、PowerFramework

这种方案的优点是体系化,定制化。缺点是较慢(数十数百个Canvas自绘),高侵入性(必须使用定制组件)。

PB界面美化方案二:窗口换肤

这种方案可以用于多种开发语言和工具,其原理是劫持窗口消息,完全自绘窗口。所以界面完全与业务代码分离。优点是使用方便,侵入性最低。缺点是定制困难。

支持这个方案的基本是商业工具,开源且较为完备的有SkinTK V0.20。

PB界面美化方案三:Hook + DirectUI

这种方案正是PowerPlume所采用的方案,与前两个方案比较起来,综合了两者的优点。ApiHook可以使用任意现有窗口,无需继承,使得侵入性降低,同时又可以定制其内容,避免了内容雷同的换肤。DirectUI技术(使用Duilib库)允许在同一窗口创建多个组件,避免了众多Canvas组件带来的性能压力。

接口也相对简单,一种组件只需一个接口

duistartup(256)

drawbarcode(st_bc1, "qr", "12345678", "")
drawbarcode(st_bc2, "ean", "12345678", "")

drawimage(cb_img, "png", "Google", "")
drawimage(cb_img_v, "png", "Google", "")
drawimage(pb_img, "baidu", "Baidu", "")

drawicon(st_ico, "female", "female", "")
drawicon(st_ico2, "male", "male", "")
drawicon(cb_ico, "star", "star", "")

源码: PowerPlumeDemoV0.4.1.rar

提供了PB10.5 PB11.5 PB12.5三个版本

<本节完>

原文地址:https://www.cnblogs.com/windfic/p/10360188.html

时间: 2024-10-10 09:38:28

PowerBuilder编程新思维4:钩挂(界面美化与DirectUI)的相关文章

PowerBuilder编程新思维3:适配(三层架构与GraphQL)

PowerBuilder编程新思维3:适配(三层架构与GraphQL) PB在富客户端时代,是一线开发工具.随着网络发展,主流架构演进到三层架构的时代,PB拿不出有力的三层架构,已经明显力不从心,市场份额也江河日下.今天我们来细数一下PB的三层架构方式及其改进方法. PB三层架构方式一:EAServer 这是PB官方首推的三层架构,但是用三句可以总结,无感的体验,无奈的价格,无语的速度. 事实上除了EAServer这个选择,可以自己开发服务端,比如topwiz公司的PBNIServ 使用BPNI

C++编程新思维中的技巧

1.编译器断言 技巧大致跟后面的一样,都是利用偏特化,但是在C++ 0X里面已经有static_assert,所以感觉这东西也没什么用处了,更多的只是开阔眼界 2.偏特化 就是专门对一个类型去进行特殊的处理,毕竟template会给生成所有的类型相同的操作,但是有时候我们需要对特定的几个类型去处理,于是就有了特化和偏特化 3.局部类 一直被忽略的C++的语法,可以直接在类或者函数里面定义类,不过一直被忽视就对了,感觉这个还是挺有意思的 4.常数映射为型别: template <int v> s

【Qt编程】基于Qt的词典开发系列&lt;三&gt;--界面美化设计

本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window  XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口中各种控件的特效也是特别重要的一环.下面讲讲我在词典软件中的一些设计:说到界面美化的设计,不得不提到美工,一个好的美工是想当的重要!软件毕竟少不了图标,而不懂美工的我,也就只能在网上使用别人的图标了. 如何得到网上的图标? 直接百度就可以了,当然还有另一种方法:就是从别人的文件中提取这些图标文件.

Qt界面美化 QSS

目前发现在Qt-Design中右击控件,可以选择Change StyleSheet ------------------------以下总结不太对 刚接触Qt,发现Qt Design无法对每个控件进行颜色风格设置.正在纳闷如此受欢迎的开发工具,怎么会没有这种,Delphi,VB,VC,C#都具备的基本功能呢? 后来在CSDN上才知道,Qt已经走在这些工具的最前方了,把界面已经独立出来和web编程一样.web有CSS专门美化工作.而Qt也有QSS进行美化设计.完全可以不影响程序开发.而且可以直接调

如何绘制思维导图?分享产品上新思维导图模板及绘制技巧

当今企业激烈竞争的环境下,大多数企业面临着产品生命周期越来越短的压力.企业要在同行业中保持竞争力并能够占有市场份额,就必须不断地开发出新产品,并快速推向市场,满足多变的市场需求.一个新的产品上新之前要经过重重分析才能将产品的极限发挥出来,得到双赢的趋势,下面是分享的产品上新生物模板及绘制技巧,希望可以帮助到大家! 绘制技巧: 1.打开画图工具,点击页面上方[模板库]在跳转的页面有很多的模板: 2.在上方搜索栏目中输入模板关键词,这时在下方栏目中将出现对应的模板: 3.点击[在线编辑]进入在线绘制

高仿富途牛牛-组件化(三)-界面美化

目录 一.概述 二.效果展示 三.工具箱 1.布局 2.功能详解 四.组件模板工具栏 五.其他界面美化 六.使用qss文件 七.相关文章 一.概述 今天是组件化的第三篇文章了,前两篇文章主要是以功能为主,分别讲解了 高仿富途牛牛-组件化(一)-支持页签拖拽.增删.小工具和高仿富途牛牛-组件化(二)-磁力吸附,其中也不乏有一些小的bug,不过这些都不是问题. 之前的效果展示只是为了表达意思,界面是真的丑,标准的程序员审美,哈哈哈.今天这篇文章主要是对之前的程序进行了美化,并且进行了一些bug的修改

364家机构共办2017数博会,三大新思维指引新经济之战

2017年5月28日,为期四天的2017数博会落幕.在这四天里,来自美国.德国.英国.日本.俄罗斯.印度等20多个国家和地区,200多个城市近千家企业界代表和5万多名观展人员齐聚贵阳,围绕主题"数字引领经济新增长"展开交流,积极探索大数据发展未来. 本届数博会的"大"数据 在本届数博会最后一天的2017国际大数据产业博览成果新闻发布会上,组委会公布了一系列数据:据初步统计,本届数博会共对接企业1479家,其中500强企业112家,达成签约意向项目235个,意向金额2

《英语语法新思维初级教程》学习笔记(二)名词

参考资料: 1. <英语语法新思维初级教程> ? 知识点 ▼ 名词是用来表示人.事物.地点以及抽象事物的名称. ▼ 名词通常分为两大类:专有名词(proper noun)和普通名词(common noun). ▼ 专有名词表示特定的人.物.机构或场所等的名词(首字母须大写).如:Paris,the United States和Bill Gates等. ▼ 普通名词又分为:可数名词(countable noun)和不可数名词(uncountable noun)两类. ▼ 可数名词 = 个体名词

《英语语法新思维初级教程》学习笔记(一)名词短语

参考资料: 1. <英语语法新思维初级教程> ? 知识点 ▼ 英语是“固定词序语言(a fixed-word-order language)”. ▼ 语言的构造级别分五个层次:1. 词(word):2. 短语(phase):3. 句子(sentence):4. 段落(paragraph):5. 篇章(discourse) a red rectangle emblazoned with five starts. ▼ 名词短语是由名词和它的修饰语一起构成的.名词的修饰语与名词的关系分两种:1. 放