首页

UI设计经验|4个UI设计界面规范的实战总结

博博

UI设计经验|4个UI设计界面规范的实战总结

UI设计导师芳姐 2018-07-18 19:32:40

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

UI设计经验|4个UI设计界面规范的实战总结

设计规范的共性

不同的规范虽然内容差别很大,但是对比一下它们的目录,却又很多相似之处,通常包含:布局、组件、配色、图标这四部分。

组件里的分类无非是导航、菜单、表单、列表、表格、按钮、弹出框诸如此类,我就不一一列出了。

设计规范有哪几类?

总体看来,我发现这三类设计规范出现概率很高:

1、给产品经理看的

IOS和早些年的Android(现在已经统一改用Material Design)设计规范就属于给产品经理看的,里面写的东西大多围绕如何选择大的方向、哪种处理方式更加合理展开的,界面细节却没有详细介绍。

这种规范适合用来做演讲,内容不多,都很有道理,参杂这很多创新的功能。

而拿着它做设计却很痛苦,因为它不告诉你如何才能达到理念中所勾勒的那个目标,图标、尺寸、陪色、字体……很多东西都不明确。

2、给设计师看的

这种规范通常的好处是内容很丰富、图例很多、建议比较详细,能够让设计师以此为基础发挥自己的创造力。

Material Design就属于这一类,而且里面很多1:1的范例可以直接拿来做参考这点非常感人。

但这种规范也有不足之处。一是它缺乏针对具体场景的规则,常常把所有可能用到的元素都拿出来一一细说,然而却不告诉你应该在什么场合使用什么。

二是容易理想化,因为做这种规范的人通常是纯粹的设计师,所以里面很多设计想法未必有足够的可实现性,或是一些创意未必经得过实践的考验。

Material Design里面很多看起来简单的设计其实是很难实现的,例如用分辨率敏感的dp取代像素单位其实大部分情况下很难实现。

UI设计经验|4个UI设计界面规范的实战总结

Material Design的文本框中,说明文字会变换位置和大小,排多了看起来会很乱。

3、给程序员看的

这类不太关心布局、交互、配色等细节,而是告诉读者他们能做出什么东西,怎么做出那些东西。

这类规范笔我原本预想的要多很多,其中令我印象最深刻的是Windows Phone的设计规范。

程序员的队友都称赞Windows的设计规范有多好多好,只有我觉得用起来无比痛苦。

现在想来,Windows Phone的设计规范虽然称之为设计规范,区别于Windows Phone的开发规范,但它完全是个教程序员如何实现各种界面的指南。

产品经理可能还可以用它来看看页面类型,对设计师来说却没有太大帮助。

这种规范对于不需要设计师的场景还是非常有帮助的,比较相比前两种,这种的可实现性非常高。

设计规范的选取

我认为上文提过的三种设计规范都很重要,且适用于不同的场合。

第一类给产品经理看的规范适合设计初期,确定理念、报告思路阶段。

第二类给设计师看的规范适合在设计定型阶段,这个时候界面具体长什么样已经确定了,但是未来的实施过程还会带来一些不确定因素。

第三类规范适用于开发阶段,根据界面来规范代码,能够大大提升前段的开发效率。

设计规范的常见遗漏

由于第一类规范的内容要求不多,所以这里的遗漏主要针对后面两类。

1、文本格式

设计师常过分专注于画图,而忘记了文字也应该有所规范。例如,日期可能的格式有很多。

例如“YYYY年MM月DD日”、“YYYY年M月D日”、“YYYY/MM/DD”等等。

再比如说单位,是用“大小:100M”、“大小:100兆”还是“大小(M):100”呢?

这些文本格式定义起来并不花时间,可是如果没有规范的话,可能同一个东西在每个页面的展示方式都不一样,对用户来说也挺烦的。

2、特殊状态

做设计和做规范的区别是,做设计时,只有在知道某个东西有某个状态时,才会去设计那个状态;

做规范时,通常要假定所有数据和操作都有状态,不同东西在不同地方的同类状态最好能够统一。

所有操作都可能失效,不管是按钮、链接、输入框、下拉菜单……什么情况在失效时显示失效状态,什么时候完全隐藏该操作,这些都是可以统一考虑设计的东西。

所有的操作都可能出错,尤其是输入框的出错率极高。如果出错了,如何告诉用户哪里错了?如何纠正?由此还可以联想到,如何在一开始就避免用户犯错?

所有摆放数据的地方都有可能没有内容,也许是列表为空,也许是字段为空。这种情况该如何明确又美观地告诉用户这里没有内容不是网络问题也不是系统问题?

UI设计经验|4个UI设计界面规范的实战总结

△ 页面没有内容的显示效果

所有内容都有可能出现异常,网络不稳定、格式不支持、系统出错等。这种状况如何明确又美观地告诉用户可能是哪里出现问题,如何补救?

成功也需要有成功的状态,有些时候页面不止一项任务,第一项成功了,第二项失败了,用户走到第三项时不一定还记得第一项是成功的还是失败的。

3、多级多选和过量

一个灵活的界面规范能够应对大部分的内容变化。例如导航和菜单的项目数量和级数通常是不确定的,下拉选框也不一定只能勾选一项内容。

更灵活的情况还有,一篇文章可能长达数十屏,这时该自动识别文章内的标题并生成目录,还是分页展示?

4、使用指南

使用指南是设计过程中通常被拖到最后才想起来的东西,在规范里也常被忽视。其中最重要的是用户首次使用时看到的操作指南。

这种操作指南可能不只在首页出现,并且未来可能随着设计的变更而变更,所以这种首次使用的操作指南是很有必要做成规范的。

UI设计经验|4个UI设计界面规范的实战总结

△ 首次使用的操作指南

此外,使用过程中,在关键时候出现的操作提示也可以有规范。例如用户进入一个新功能时,可能会出现该功能的介绍。

5、尺寸适配

响应式界面已经被说了这么多年了,而被明确放在规范里的,除了Material Design之外还真是很难找到了。

如果你想了解响应式界面,可以看我之前的文章《设计响应式界面该清楚哪些》。

响应式界面有很多分类和实现方式,不论是视觉、交互还是前段都有所涉及,每个页面和元素都可能根据实际情况需要特殊处理,这也是为什么响应式设计很难定制规范。

UI设计经验|4个UI设计界面规范的实战总结

△ 响应式界面:如果是页面是容器,内容就像水一样

除了整个页面的适配之外,小的组件也最好是可能变化尺寸的。例如同一张图表,可能被放在一个很空旷的页面,也有可能被放在一个很拥挤的页面。

需要调整尺寸时,哪些可以缩放哪些不能缩放,对其的中心是什么……这些如果能够明确,设计将会变得越来越像拼图。

除了整个页面的适配之外,小的组件也最好是可以自动调整尺寸。例如同一张图表可能被放在一个很空旷的页面,也有可能被放在一个很拥挤的页面。

组件需要调整尺寸时,哪些可以缩放哪些不能缩放,对其的中心是什么……这些如果能够明确,设计将会变得越来越像拼图。

6、动效

动效也火了很久了,但是似乎还是停留于表面,缺少一套可依赖的标准。动效师并不好当,既要有超高的编码能力,又要有敏感的美学神经。

也许就是因为这么困难,才导致大部分设计规范即便包含动效这一目录,里面填充的内容也非常模糊不清。

7、音效

大部分应用是没有音效的,因为音效很容易让人厌烦,而且节奏不好把控。但是对于音乐、视频等媒体应用,音效的发挥空间却很大,至今尚未开发。

撇开这些不谈,如果有音效,何时使用何种、多大音量、时长多少、震动模式(手机)时需不需要震动反馈,很多东西都可以考虑。

8、手势

和键盘的快捷键一样,偏爱触屏手势的也大有人在,而且手势也能让产品更加独特。如果允许使用手势,这部分也可以有所规范。

9、国际化

如果界面上的语言种类不止一种,那么如果文字转换后过长或过短怎么办?用户在看不懂当前语言的情况下如何切换语言?

不同的语言该选择什么字体才不至于太难看(例如中文的默认字体通常是宋体)?

10、小众人群

虽然我们最关心的还是主流用户,但是很多小众人群组合起来也是可以构成一定分量的。例如,触屏应用能不能给左手使用者舒适的体验?

桌面应用能不能够让没有鼠标或是没有键盘的人使用?色盲和色弱能区分界面上的色块?视力较差的人能不能放大字。

希望以上内容对你学习UI设计有帮助,觉得可以请转发支持一下,持续分享更多UI设计优秀文章。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

博博

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

UI巴巴 2018-07-05 21:02:31

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

相对于其他类型的APP,商城APP设计难度比较高,因为电商APP业务比较复杂,既要展示完整的业务功能,又要保证用户体验,非常考验UI设计师的设计功力。所以小编精心挑选了几款比较优秀的电商APP界面设计作品,希望对设计师有借鉴意义,里面的一些精髓还是值得一“抄”。 

1、极简的设计,适用安卓平台,跟其它设计不一样的是筛选按钮放在底部。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

2,商城的登录页和产品信息流页面。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

3,安卓平台的商城app首页。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

4,极简设计的商城app。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

5,卡片式的产品翻页设计。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

6,渐变色的运用,不对称的排版。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

7,商城产品列表页设计。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

8,服装类商城,筛选器的设计。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

9,生鲜类商城app的设计。

国外极简商城APP UI界面设计欣赏,别告诉我你不会“抄”

以上商城app设计案例里有产品页界面设计,也有商城首页的ui设计。电商APP的设计不能只满足表面的视觉层面,还要关注业务的流程,这样设计出来的APP才能吸引更多用户访问和购买你的产品。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


交互设计之设计心境:创造情绪板的7个动机

博博

交互设计之设计心境:创造情绪板的7个动机

人人都是产品经理 2018-08-19 14:05:13

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

本文将致力于称为情绪板的技术。让我们来看看情绪板是什么,以及他们在设计师的工作流程中是如何帮助的。enjoy~

交互设计之设计心境:创造情绪板的7个动机

想象一下你努力工作,花了很多时间来创建一个详细的原型,然后一个客户拒绝它甚至不接近他想要的。听起来很熟悉,不是吗?至少每一个设计师都经历过这样一个不愉快的局面。也许现在每个人都希望得到一些相关的建议,如何避免这种情况,但真正说没有一个完美的决定。

然而,有几种方法有助于降低客户拒绝的风险,并节省设计师的时间和勇气。今天的文章致力于称为情绪板的技术。让我们来看看情绪板是什么,以及他们在设计师的工作流程中是如何帮助的。

什么是情绪板?

情绪板技术不仅在设计领域流行,而且在许多创造性的专业人员中流行。情绪板是确实的板(数字或材料),从照片到各种肌理,人们填充不同种类的东西以至于能将想法和概念形象化。

与线框和原型不同,情绪板不显示未来项目的详细图片。它们意在传递正确的情绪,并带来产品期望的情感。

情绪板是一个有用的工具,帮助设计师有效地与客户和团队成员合作。纸板可以在一个紧凑的时间框架内轻松地被创建,并把抽象的想法变成现实。这样,设计师可以有效地与他人分享他们的想法,因为视觉材料总是比流畅的说法更好。

交互设计之设计心境:创造情绪板的7个动机

如何创建情绪板?

情绪板是一个很好的方法来实验调色板,字体和风格,以及规划一个项目的视觉层次。每个人都自己决定在情绪板中包含哪些组成部分。UI/UX设计师通常使用各种样本以至于可以来描述界面元素的特征。让我们来看看情绪板常见的几种类型。

自由拼贴

设计师经常收集免费高清的图片,方便他们在项目或其他地方使用这些素材。这些收集品可能有助于情绪板的创作。将美丽的照片组成的自由拼贴是传递设计理念的一种有效方式。此外,拼贴可以用插图,字体和颜色案例来构成。

创建这种类型的情绪板是最快的,也是最容易的。但是,如果客户比较关注细节,他们可能并不会对将来项目中的这些拼贴感兴趣。

交互设计之设计心境:创造情绪板的7个动机

参考收集

灵感来源和想法可视化的另一种方法是找高质量的参考。网上有很多资源,如Behance和Dribble,在那里设计师可以通过免费浏览的方式获取灵感和还有一些实际项目的示例。由一个相同风格或任何其他特性联合起来的设计作品可以很容易地说明一个新项目的想法。此外,这样的情绪板可以帮助客户有效地理解一个概念,因为他们可以看到类似的参考,并能够大致想象出他们的产品会是什么样子。

模版画板

这些情绪画板更像是原型和线框图。他们的目标是展示产品的结构和视觉层次。不同之处在于模版画板上的UI元素没有线框图中的原型或示意图那么详细。把随机的插图和照片来当做界面的构成元素,并以此来展示(数字)产品的布局。此外,可以用这种方式选择图像,从而更容易的确认合适的配色。这种方法比原型更快,因为它不需要细节。

交互设计之设计心境:创造情绪板的7个动机

为什么UI/ UX设计师应该创建情绪画板?

我们中的许多人可能注意到,在设计工作流程中,线框和圆形总是被描述为基本阶段,而很少人提到情绪画板。有些人认为他们是在浪费时间,或是认为这只是一种“娱乐”。经管如此,仍然有很多人把画板作为每个创意过程的一部分。但是他们为什么要选择这项技术呢?在这里,我们收集了设计师的原因清单。

1.节省时间和精力

情绪画板的第一个且很大的有点是它不需要花太多的时间就能完成。这意味着,在几小时或者更少时间内,设计师就可以创建一个视觉指南,为客户提出一个概念。情绪画板可以很容易地编辑,这样既省时又省力。

这样的视觉指南是一个很好的基础,可以快速的跳转到下一个阶段——原型阶段。此外,如果客户对结果不满意且想要一个新方案,设计师也不会变得神经质,因为他们不用花一整天的时间来创建一个详细的演示。

2. 获取灵感

当然,设计师不能总是依赖灵感,因为他们有工作要做,然而,如果创造者收到启发,事情就能更有效的进行。情绪画板是一个寻找创意和热情的好方法。美丽的照片和插图有助于找到正确的情绪和风格。此外,如果可能,你可以试着通过你周围的东西来创建一个情绪画板当做素材使用。据说手工对创造性思维有很大的影响。所以为何不试一试呢?

3. 找到一个对的颜色配色板

一个拼贴内可以包含照片、插画和颜色形成布置引人入胜的样品。在一个板上混合不同颜色的图片,即使UI元素还没有准备好,设计者也可以用调色板进行实验。

4. 加强与客户的沟通

当产品处于抽象概念阶段时,设计师和客户有时很难在讨论时相互理解。例如,双方可以以不同的方式看到某种风格,从而引起争论。这就是为什么使用一些视觉参考如情绪板总是一个好主意

5. 少说话,多展示

继续上面的观点,应该说任何长的报告都不能比视觉呈现更好地解释你的计划和想法。在客户的脑海中,文字无法成形,但视觉材料是一个可靠的指导,帮助客户深入深入细节并正确理解你的想法。

在早期阶段说明你的想法,这样客户可以看到你的计划以及他们的产品是如何成形的。

6. 为设计找到一种风格

如果一个创意团队没有收到客户关于设计风格的指示,任务就落在设计师的肩上。要了解一种或另一种样式如何工作,不必为它们中的每一种构建详细的原型。添加到情绪板不同的纹理,实验类型的插图,测试字体,并改变颜色。用情绪板来尝试选项比用一个接一个地改变原型更快、更方便。

7. 让客户参与流程

获得客户信任的方法之一是让他们觉得自己深入参与了一个项目。因此,在这个阶段,如果他们愿意,他们可以积极参与风格和样本的选择。在非设计师的情况下,做模型是一种很简单的技巧。

可以建议客户对照片和图片进行拼贴,如果不是新客户,也可以提供参考。通过这种方式,设计师可以轻松地了解客户的品味和偏好,并了解他们对项目的期望。

数字设计项目的情绪板的例子

为了更实际地介绍这个问题,我们想向您展示由Tubik设计师Dima Panchenko编写的用于用户界面设计项目的扩展情绪板集。他还做了一些常规笔记向客户展示了情绪板,这对沟通的过程和选择了项目的概念有积极的影响。

1. 用于设置客户对屏幕总体风格概念的偏好的情绪板

交互设计之设计心境:创造情绪板的7个动机

2. 情绪板呈现出项目需求所对应的风格上的眼光

交互设计之设计心境:创造情绪板的7个动机

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


几个案例解析:如何一步步做出合理的策划方案

博博

几个案例解析:如何一步步做出合理的策划方案

人人都是产品经理 2018-08-19 15:01:59

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

做产品方案的时候,我们经常会走进死胡同或者跑错路,最后不论是开发还是市场,对结果都不满意,产品自然就成了背锅侠!但是往往我们出方案的时候,多想一些问题,或许结果就不一样,跟新人交流的时候,发现一些能力需要可以单独训练,有意识的去理解一些东西,长期积累就会有自己的一套解决问题的思路。

几个案例解析:如何一步步做出合理的策划方案

1. 辨别真伪的能力

辨别真伪也就是老生常谈的真伪需求的能力,在产品经理的行业里,经常会进行需求的评审,需求的界定,看这个需求是否是真的有效

举个例子

行业:外卖行业

案例:打包费审核的功能

功能出发点:解决商家乱设打包费的需求

解读:如果从这个角度来讲,打包费审核完全没必要,原因有

  • 未必所有的商家都乱设打包费,只是个别现象
  • 及时设置了打包费审核,后台审核了,也没办法解决,除非后台做强制性的更改或下架商品的功能
  • 打包费是商家自主行为,如果商家恶意设置打包费,是给自己添堵
  • 如果真想解决此问题,在商家上传商品的时候设置打包费的选项,一个餐品打包费最多是多少
  • 或许极个别的商家的打包费真的会比较高,可以在商家管理后台做好打包费配置即可,从源头控制

很显然,要在后台做一个打包费审核的功能,还需要让人专门处理此业务,对系统来说,是降低效率又不见得有效果的,所以,界定为伪需求。那么既然存在这样的问题,可替代方案如下:

  1. 商家添加商品时打包费又两个选择【收打包费】【不收打包费】,打包费为行业标准,1元/份餐品;
  2. 对于大型的打包盒,比如说探鱼这些商家,打包费可以开放设置(大型连锁或者知名品牌可以认定为不需要通过打包盒来赚取利润)。

辨别真伪的能力不仅仅体现在能辨别出来,更多的是能够用更灵活的方式来解决来自运营、消费者产生的问题,且不增加过多的额外工作。

2. 找到合适定位的能力

合适定位的能力,这个说的有点虚,用通俗的话来讲,就是找个抄的对象。在国内想要做一个App有大量的抄袭模仿对象,各大知名厂商已经做了很多的研究,剩下的就是模仿和创新。能不能找到合适的模块去进行创新,这个就比较重要。

案例1:外卖行业,推荐商家

功能出发点:外卖行业的推荐商家,很多事按照细分的行业来做的,比如说美团跟饿了么的【必吃菜品】【品质联盟】这些,但是对消费者来说,这真的是我想要的选择么?

解读:从消费者的心理出发,我去找吃的,可能出于几点

  • 找新鲜:看看这附近有什么新鲜的店铺开业或者新的口味,外卖一个月都是那几家,早就腻了
  • 找实惠:外卖分量不够,10块钱管饱的那种最好
  • 速度快:能告诉我最快的是哪家么?

其次还有可能

  • 这两天身体不舒服,想吃点口味淡的
  • 我是湖南湖北人,我想吃点重口味的
  • ……

因此,从这类具有标示性的标签入手,会更有效果。此类功能类似于一点点的餐牌设计以及lofter的标签设计,将商家分配不同的标签跟消费者的消费场景对应上,交叉进行推荐,比如说一个商家有很多种口味,那对应的消费者人群也会多,消费者通过对应标签可以快速找到对应的商品,对消费者和商家都是互利的,我们经常会遇到一个外卖店铺有几十种餐品,找半天还是不知道吃啥。

几个案例解析:如何一步步做出合理的策划方案

(配个截图,此功能已实现,后续看数据情况,再做追踪)

顺便说一下,之前饿了么有个版本放大对餐品的显示,做餐品的推荐,后来又改回来,具体是什么因素,不确定,但那也是一种尝试。

案例2:荔枝FM飞机稿

出发点:那是很早以前的一个版本,因为不好用,所以就干脆做一个交互飞机稿,当时做的时候有以下几个因素:

  • 体验不好,最古老的版本体验非常不爽(详情可以戳这里:http://www.woshipm.com/ucd/209199.html)
  • 当时在做交互设计,就尝试用新的交互设计思路去设计

解读:

当时荔枝FM算是国内比较早做电台的,同期出了喜马拉雅听,刚开始也没有荔枝FM那样火,但从交互上,主要由两个点:

  1. 模拟电台操作:荔枝FM当时还是走拟物化设计(新进入互联网的可能觉得是历史),那从FM收音机的角度来说,都有一个旋钮,或者是老式的随身听,因此在主页的界面设计以及播放界面设计都有参考古老随身听的样式,既然复古,我们就彻底点
  2. 数据整理:在当时做荔枝FM的飞机稿时,主要做的是数据层的整理,把繁杂的内容数据变得有序可循,让用户和博客可以更快找到合适自己的内容

对于合适的定位可以理解为:每个事物或许有自己固有的长相,但或许我们找到合适的逻辑后,只要抓住根本,那最后怎么玩,还是大家说了算,打破陈规,才更好玩。为什么音乐软件就一定要有那么大的播放界面;为什么订餐软件就一定要宣传店铺,不能是商品?

3. 解决问题的能力

这个就老生常谈了,解决问题的能力体现在对系统的掌握程度和开发自由度两个层面,产品经理实质是提供解决方案的,任何需求到手后,我们需要分析如何快速解决该问题。

案例1:招聘面试流程

出发点:销售类岗位进行招聘时,都是一大批一大批的面试,一个人可能同时面试很多岗位,一个公司会面试很多个求职者,因此提率,对求职者和公司都是最大的需求

解决方案:排队叫号,跟银行排队一样,针对这个场景,我们梳理了核心的问题

  • 面试人员取号
  • 面试人员查看各岗位当前排队情况及投递请求
  • 企业招聘人员查看简历并选择是否面试,对面试的人进行初步评论
  • 叫号及数据导出

针对以上四个问题,设计出如下流程(省略取号的环节,主要核心的流程是企业的发送通知循环以及面试后的符合不符合操作循环)

几个案例解析:如何一步步做出合理的策划方案

从流程图可以发现,核心逻辑并不复杂,解决了通知求职者来面试的需求以及对求职者进行评价需求即可;除此之外还可以做一些其他的功能,如求职者可以看到当前排队情况,根据实际情况进行简历投递,避免出现大量等待情况,可预知自己还要多久可以面试,在这时间内是否可以投递其他公司,进行多项选择;对于企业解决各种纸质简历分辨不清,电子档简历,电子记录每一个求职者和操作,可以清楚知道今天面试记录,电子档案,更清楚,提高双方的效率。

4. 了解数据的能力

对于数据,很多人应该不会陌生,如何从杂乱的数据找到规律,怎么处理数据之间的关系?

  1. 一级页面到二级页面的流失率和转化率
  2. 每个页面转化功能的设计及数据统计
  3. 数据解读

最近在做小程序相关的项目,把腾讯的数据统计贴上来:

访问趋势类:

  • time 时间
  • session_cnt 打开次数
  • visit_pv 访问次数
  • visit_uv 访问人数
  • visit_uv_new 新用户数
  • stay_time_uv 人均停留时长 (浮点型,单位:秒)
  • stay_time_session 次均停留时长 (浮点型,单位:秒)
  • visit_depth 平均访问深度 (浮点型)

访问分布:

  • access_source_session_cnt 访问来源分布
  • access_staytime_info 访问时长分布
  • access_depth_info 访问深度的分布

访问留存

  • visit_uv_new 新增用户留存
  • visit_uv 活跃用户留存

访问页面:

  • page_path 页面路径
  • page_visit_pv 访问次数
  • page_visit_uv 访问人数
  • page_staytime_pv 次均停留时长
  • entrypage_pv 进入页次数
  • exitpage_pv 退出页次数
  • page_share_pv 转发次数
  • page_share_uv 转发人数

总结

产品经理从拿到需求开始就需要对需求进行分解,判断到底什么样的方案可以解决此问题,并结合当前系统的一些功能点,给出最佳的方案;在交互设计的时候是参考竞品还是微创新,就看实际业务需求;最后就是核心业务梳理,一个功能的核心业务是什么,还有哪些可以搭配让功能更完善的,考虑进去,做产品是一个分解、组合、删减、再组合的过程!


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务



面向中小企业SaaS的权限管理系统

博博

面向中小企业SaaS的权限管理系统

人人都是产品经理 2018-08-19 15:02:17

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

本文基于面向某个垂直行业的SaaS系统的设计经验,抽象出一套适合中小企业的权限管理体系,目标是最大限度保留系统弹性的同时,把系统复杂度和开发成本尽可能降低。enjoy~

面向中小企业SaaS的权限管理系统

面向企业级的SaaS(软件及服务)系统,由于企业用户的规模和内部管理模式千差万别,设计一套具备足够弹性、符合绝大部分目标企业用户需求的权限管理系统,是一个很大的挑战。

我们可以看到,市面上面向多个行业的综合性SaaS系统,例如销售易、纷享销客等,由于它们的目标客户跨越了多个行业、多种规模,这些企业具备各种各样的内部管理风格和模式,在权限系统的管理上,往往做得非常复杂,不仅具备部门、角色、职位、数据等各个维度的权限管理,各个功能模块还有自己独立的权限管理,虽然具备最大的弹性,却给企业的系统管理带来较大的负担。

提炼的三个核心原则:

  • 企业-管理员-普通账号三级权限
  • 功能和数据权限分离
  • 部门和角色分离

围绕上述三个基本原则,我们力图在满足中小企业需求的前提下保持足够的弹性,并严格控制复杂度和开发成本。详细描述如下。

1. 权限从上到下分为三个层级:企业账号(老板账号)、管理员账号、普通账号

对于中小企业来说,公司的实际控制人,往往是公司的创始人或自然人大股东,因此企业账号的使用者以及对应绑定的手机号码,都是公司的实际控制人,他应该掌握最核心、权限最大的企业账号,所以也可以称为“老板账号”。

但是在实际场景中,公司的实际控制人并不会直接管理公司的业务支撑系统,因此,需要在系统首次部署时,创建好企业账号,并由企业账号授权给某一个或多个系统管理员,由系统管理员去完成日常的角色创建、员工导入等工作。系统管理员,对应的一般就是HR或行政部门的管理人员。当然,企业账号的权限高于管理员账号,如果是小微型企业,也可以由企业账号直接替代管理员账号的功能。

除了企业账号和管理员账号之外,其他各级员工所持有的账号,都属于普通账号。普通账号的部门、角色、数据等权限的设置,一律由系统管理员配置。

三个权限层级示意图如下:

面向中小企业SaaS的权限管理系统

在实际系统中的核心业务步骤如下:

(1)企业购买系统时,创建一个企业账号,这个企业账号绑定的手机号码为公司实际控制人的手机号码。该手机号码必要时可以解绑(例如公司实际控制人变更),由于该功能触发频率很低,因此不需要在前端功能中实现,只需要在购买协议中写明,“购买企业可以通过书面方式提出企业账号手机号码绑定变更需求”即可。

(2)在部署和培训阶段,可指导企业账号持有人创建一个或多个管理员账号,该账号一般授权给行政总监或人力资源总监,后续配置即由管理员账号进行。

(3)管理员账号持有人需要接受系统培训,掌握部门创建、角色创建、功能和数据权限分配等基本操作。管理员所有操作都必须记录在案,供企业账号持有人监督,且管理员操作触发异常行为规则(如大量分配高等级权限等)时,系统会通过短信方式通知到企业账号持有人,确保企业账号对管理员的全方位掌控。

(4)企业账号可随时将管理员账号禁用或设定为离职,但管理员账号不可对企业账号进行任何配置或操作。

(5)企业账号默认拥有所有权限。

2. 功能权限和数据权限分离

功能权限,定义为可见、可以操作的功能范围。例如某一部分菜单,或者某个页面里的各种操作。

数据权限,定义为若干个数据类型里的具体可见范围,例如“客户”就是一个数据类型,它的权限举例如“无权限”、“我的客户”、“我所在部门的客户”、“我所在部门及下级部门的客户”。

通过功能权限和数据权限的分离,我们可以做到以下场景:需要开拓和维护客户的角色集合,都可以拥有“客户”这个菜单的权限,但不同的角色进入“客户”菜单的列表时,看到的客户范围各不相同,极端情况是看不到任何客户。且不同角色在同一个客户页面上,能进行的操作也不同,例如有的角色可以新建客户,有的却不行,这就要由功能权限来控制。

可见,通过功能权限和数据权限的分离和配合,我们在具体的权限分配上有了非常大的弹性,且在技术层面的后台系统的设计上,也非常合理、清晰。

而在具体设计上,需要保证以下4点:

  1. 正确区分功能和数据,入口性和操作性的都应该归类为功能
  2. 正确对数据进行分类,避免存在分类后的某些数据存在交集
  3. 数据分类到多细的颗粒度,需要由行业特性决定
  4. 数据权限区分为查看、编辑和删除

示例图如下,由于涉及具体产品,对某些文字进行了打码:

面向中小企业SaaS的权限管理系统面向中小企业SaaS的权限管理系统

3、部门和角色分离

部门的定义,自然就是公司行政组织架构下的部门。

在本设计方案中,角色等同于职位,而在许多大型的SaaS系统中,为了更大的灵活性,往往会把角色和职位分开,但根据我们的判断,对于中小企业,设定角色一个就够了,职位当然还存在,但仅仅是一个不涉及权限管理的文本title了。

以一个销售公司来说,角色可以包括:“渠道专员”、“渠道总监”、“销售专员”、“销售经理”、“总经理”等等。

所谓的部门和角色分开,就是不同的部门可以有相同的角色,例如如果有渠道一部、渠道二部,则这两个渠道部的员工的角色都可以设定为“渠道专员”,这两个部门的管理者都可以设定为“渠道经理”。再配合功能和数据权限,则进一步配置“渠道专员”具有“渠道”菜单的功能权限,其能够查看的渠道数据权限范围则仅为“我的”,而“渠道经理”同样具有“渠道”菜单的功能权限,但其能够查看的渠道数据权限的范围则扩大为“部门”。

具体设计上:

  1. 最大部门即为公司
  2. 管理员账号和普通账号均可禁用或设置为离职
  3. 不同部门可以配置相同角色
  4. 相同角色的功能权限和数据权限是一样的
面向中小企业SaaS的权限管理系统

4. 权限系统和其他功能设计的关系

总结完权限系统三个核心的基本原则后,我们还需要指出一点:权限系统的设计方案,在整个系统中绝不是孤立的,它能否实现设计目标,并和整个系统完美配合,还需要做到以下几点:

首先,菜单和功能的设计,必须是最小颗粒度,否则就和数据权限产生冲突。例如:我们只需要一个“客户”菜单即可,不同角色在“客户”菜单里能干什么事情,由功能权限和数据权限配合进行控制,但切不可出现“我的客户”+“全部客户”两个菜单,这明显和数据权限有根本冲突,且也是一种不优美、不合理、扩展性差的设计。

其次,数据的分类,必须符合业务需求,且划分合理。有些数据都是公开的可以不归入数据权限进行管理,所有角色默认都有即可;有些数据需要进一步细分,例如同样以“客户”举例,在某些公司的业务规则中,就需要将客户的基本信息和联系信息分开控制,管理层可以看客户基本信息,但只有客户负责人才可以看联系信息,这种情况就需要将客户的数据权限分为“客户基本信息”和“客户联系信息”两个。

最后,权限变更的记录和所有账号的行为轨迹记录一样重要。权限系统本质是进行权力的限制,没有监管的权力必定是会失控的。在出现问题的时候,必须同时配合权限变更的记录、角色变更的记录和账号的行为轨迹记录进行追责和存证,确保维护企业的合法权益。

总结

在合理设计的前提下,权限系统也并非越复杂越好。只有符合目标客户需求并具备最大弹性的权限系统,才是最好的。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


「网易蜗牛阅读」和「微信读书」的写书评功能分析

博博

「网易蜗牛阅读」和「微信读书」的写书评功能分析

人人都是产品经理 2018-08-19 16:05:00

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

「网易蜗牛阅读」和「微信读书」的写书评功能分析

一、目的

三、用户 – 场景 – 需求分析

「网易蜗牛阅读」和「微信读书」的写书评功能分析

小结(这个模块是做什么的?为什么?):

写书评方说:

  1. 领读人/书评家/作家提供了一个新的发布自身书评/作品的平台,且通过签约等合作形式为他们提高了收入,同时为他们开拓了新的增加粉丝,扩大影响力,强化IP的新方式;
  2. 作家/书本运营方/媒体机构提供了相对于其他电子书app来说更为专业的推广渠道;
  3. 阅读者(尤其是有写观后感习惯的)提供了更专业、完整、体系化的内容记录与发布方式,以及获取认同,寻求社交,与书友互动交流的新机会。

看书评方来说:

  • 阅读者可以在阅读前去通过书评快速全面了解一本书(零碎时间的泛读),为要不要深入精读提供参考;可以在阅读前通过观察别人对此书的解读,带着自己的问题与思考再去有目的性阅读;可以在阅读时,体系化的记录自己的想法;可以在阅读后寻找他人解读中的不同点或共同点,加深自身思考,以及完善自身的想法。
  • 找书者可以通过次主打的导读特色功能,通过专业人士分享的书单或由读过的人分享的想法,找到更值得信赖的内容向导。

运营方来说:

  1. 以书评特色作为产品特色推广,吸引有写观后感习惯的电子书阅读群体,为对写书评有爱好或者以写书评为业的群体提供新的平台,满足拉新需求。
  2. 通过书评领读,为用户挑选书籍提供大量专业参考满足留存需求。
  3. 以领读人带起书评风潮,以PGC促进UGC,以及通过普通用户对领读人的申请,满足激活需求。
  4. 在书评中插入书籍入口,方便用户阅读购买,满足转化需求。

四、业务流程、业务逻辑梳理

功能流程:

「网易蜗牛阅读」和「微信读书」的写书评功能分析
  1. 入口一:领读 -> 右上角写书评按钮 -> 写书评;
  2. 入口二:我的 -> 我的书评 -> 右上角写书评按钮 -> 写书评;
  3. 入口三:选择书籍 -> 阅读书籍 -> 右上角写书评按钮 -> 写书评;
  4. 入口四:选择书籍 -> 书评栏 -> “写书评,获时长奖励‘输入框 -> 写书评。

四个入口分别代表四种场景:

  • 入口一为领读人直接发表文章提供便利;
  • 入口二是方便内容发布者对于自己的书评进行编辑管理;
  • 入口三提供阅读中随时记录想法,书评素材的方式;
  • 入口四的奖励文案鼓励大家加入写书评,加入阅读,且为阅读者提供参考。

业务逻辑:

「网易蜗牛阅读」和「微信读书」的写书评功能分析

小结:

通过业务逻辑的分析可以看到,「网易蜗牛平台」,“书评功能”,书评发布方以及书评阅读方四方形成一个完整的循环,首先平台通过优秀领读人的引进,为阅读方提供内容,并与之互动;再通过激励引导,由PGC带动UGC,让阅读方成为发布方,让用户生产内容,并提供申请领读人的渠道;然后发布的内容再次与其他阅读方互动,形成一个完整的循环生态系统。

五、功能点对比

「网易蜗牛阅读」和「微信读书」的写书评功能分析

小结:

相同点:通过阅读中,书本详情页进入;输入文字,输入标题,添加笔记/标注,插入书籍;字体,副标题,符号,私密发布,分享功能。(基本功能)

不同点:

  • 「网易蜗牛读书」:标题的必要性、添加图片、多本书籍插入;多样化的字体排版选项、PC编辑、保存到草稿箱、奖励、撤销功能。(专业化需求较强)
  • 「微信读书」:添加表情;引用、星级评分。(较为注重简单,直接,有趣)

六.总结

抄不抄?

不抄,如果发现UGC内容越来越多,以及专业化需求提高,可以考虑借鉴「网易蜗牛读书」中写书评的多样化编辑功能去完善写想法功能。

原因:

(1)产品定位

主打特色可以看出产品定位,以及发展方向的不同。两者同时对于领读这一模块下了很大的功夫,但玩法不同,「网易蜗牛读书」通过专业领读人(内容分享 & 引流导购)发布的专业书评,去引导用户阅读,降低用户的防备心,所以写作门槛较高。

而「微信读书」则无此需求,以好友作为切入点,通过好友在看的书,进行熟人引读,把用户防备心降到,能让用户无成本接受,但同样容易导致内容参差不齐。

(2)社交属性

「网易蜗牛读书」以PGC为主,专业领读带动社群发展,看书评人与书法发布方本身可能是粉丝关系,也可能无任何关系。而「微信读书」以UGC位置,好友之间的想法碰撞占到大多数。

(3)用户驱动方式

「网易蜗牛读书」以其特色时长阅读,以及兴趣导向,领读人粉丝引进为主。而「微信读书」则有很大部分基于好友之间的竞争关系,通过虚荣心驱动。

所以对于「微信读书」来说,暂时不需要花较大成本引入专业的PGC内容,性价比不高,与产品定位契合度不高。

本文由 @大明 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

博博

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

年轻时的码云 2018-06-15 18:39:08

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

算是比较全的合集,送给大家,资源获取在文末(有惊喜哦),这次福利很大,赶快关注哦(资源限时开放....)!

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

1,layui/ layuiAdmin

layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui 首个版本发布于2016年金秋,她区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。

大家有机会多支持闲心。。。。

不过后台UI是要授权的哦

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

2,dwz富客户端框架 - jUI

DWZ富客户端框架(jQuery RIA framework),是中国人自己开发的基于jQuery实现的Ajax RIA开源框架。 DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级。

比较成熟,应用比较广泛,官网有整合的应用可以借鉴

  • DWZ框架 + ThinkPHP 实现小组工作日志系统
  • dwz4j企业级Java Web快速开发框架(Hibernate+Spring+Struts2) + jUI整合应用
  • dwz4j企业级Java Web快速开发框架(Mybatis + SpringMVC) + jUI整合应用
  • ThinkPHP + jUI整合应用
  • Zend Framework + jUI整合应用
  • YII + jUI整合应用

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

3,B-JUI 前端管理框架

B-JUI客户端框架(Best jQuery UI),是基于Bootstrap样式及jQuery库实现的Ajax RIA开源框架。

B-JUI客户端框架扩展方便、简单易用,很多情况下只要熟悉HTML语法,使用HTML属性就可以轻松用Ajax开发项目。对于javascript不太熟悉的程序员是非常方便的,他们只需要关注后端业务逻辑的实现就行了,前端页面上只需要简单的写点HTML代码。

本框架基于Bootstrap前端样式及jQuery库开发,提供丰富的各类组件及UI,封装有多种组件,及相关的Ajax请求调用,并且都以jQuery标准插件的方式组合在一起,所以非常方便进行二次开发或再扩展。

兼容性:

  • IE8.0+, Chrome[最佳], Firefox, Safari。(IE8 未详细测试,估计问题不大,但一些CSS3的效果就不要想了,如圆角、动画什么的)
  • 本框架不适用于需要兼容IE6、7的开发者或使用者。
  • PS. 未考虑兼容IE6和IE7,一是因为Bootstrap3.2不支持,二是因为目前主流系统已是WIN7(IE8+),三是带WebKit内核的浏览器大量出现,如360浏览器、搜狗浏览器、百度浏览器等。

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

H+ 后台主题UI框架

H+是一个完全响应式,基于Bootstrap3.3.6版本开发的扁平化主题,她采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术,她提供了诸多的强大的可以重新组合的UI组件,并集成了的jQuery版本(v2.1.4),当然,也集成了很多功能强大,用途广泛的jQuery插件,她可以用于所有的Web应用程序,如网站管理后台网站会员中心CMSCRMOA等等,当然,您也可以对她进行深度定制,以做出更强系统。

提醒:是收费的


适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

H-ui.admin

H-ui.admin是用H-ui前端框架开发的轻量级网站后台模版 采用源生html语言,完全免费,简单灵活,兼容性好 让您快速搭建中小型网站后台,拿来即用。


适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

jQuery MiniUI_快速Web开发

jQuery MiniUI - 专业WebUI控件库。

它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。

jQuery MiniUI致力降低企业应用的开发成本,丰富的UI控件、高度的稳定性、强大的扩展能力和平滑的版本升级能力,可满足大部分业务场景需求。

缺点:收费的!


适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

请输入描述

EasyUI

easyui是一种基于jQuery的用户界面插件集合。

easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。

使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。

easyui是个完美支持HTML5网页的完整框架。

easyui节省您网页开发的时间和规模。

easyui很简单但功能强大的。

  • 大家百度去官网下载即可

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

TOP-JUI 

b-jui的作者基于easyui开的的,比easy调用简单,很不错的UI,可惜收费,不过不算太贵

TopJUI基于版EasyUI构建,在使用TopJUI的过程中,除了可以使用TopJUI提供的组件功能外,你还可以根据实际情况调用EasyUI的原生组件功能,满足各种复杂的业务功能需求开发


Amaze UI 后台管理模板

Amaze UI 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。

组件丰富,模块化Amaze UI 含近 20 个 CSS 组件、20 余 JS 组件,更有多个包含不同主题的 Web 组件,可快速构建界面出色、体验优秀的跨屏页面,大幅提升开发效率。

不过这个模板现成的东西比较少,复杂功能还需要自己去完善


适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

LigerUI

  • 使用简单,轻量级
  • 控件实用性强,功能覆盖面大,可以解决大部分企业信息应用的设计场景
  • 快速开发,使用LigerUI可以比传统开发减少极大的代码量
  • 易扩展,包括默认参数、表单/表格编辑器、多语言支持等等
  • 支持Java、.NET、PHP等web服务端
  • 支持 IE6+、Chrome、FireFox等浏览器
  • 开源,源码框架层次简单易懂。

适合做后台的UI汇总,懂程序不懂UI的你还在烦恼怎么美化后台界面

win10-UI

Win10-UI是一款win10风格的后台UI框架。它使用了丰富的win10桌面元素,包括桌面图标、窗口化子页面管理、开始菜单、动态小磁贴等组件,兼容主流现代浏览器及移动端的屏幕尺寸,适合快速开发后台管理系统的前端界面。

风格不一样,还是挺不错的


国外还有很多 bootstrap 后台UI

Ace Admin,Metronic等等


今天小编就分享到这里

评论回复相关需求,小编会第一时间私信您

或者私信回复“后台UI”,自动获取资料,都是小编的血汗哦,本资源只开放一段时间,赶快获取哦(是私信不是评论哦,评论无法自动回复)

如果你是初级程序员可以研究别人的代码提高技术,如果你喜欢搞网盟或者外包,可以让你快速建站,还等什么赶快关注吧,我们会持续输出相关资源


资源来自互联网 仅供学习研究之用,不得用于商业,请在24小时内删除!

版权归原作者及其公司所有,如果你喜欢,请购买正版。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

QTableView基本用法

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

一、添加表头:

  1. QStandardItemModel *model = new QStandardItemModel(); 
  2. model->setColumnCount(2); 
  3. model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("卡号")); 
  4. model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("姓名"));

复制代码


二、设置表格属性:

  1. ui->tableView->setModel(model); 
  2. //表头信息显示居左 
  3. ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); 
  4. //设置列宽不可变 
  5. ui->tableView->horizontalHeader()->setResizeMode(0,QHeaderView::Fixed); 
  6. ui->tableView->horizontalHeader()->setResizeMode(1,QHeaderView::Fixed); 
  7. ui->tableView->setColumnWidth(0,101); 
  8. ui->tableView->setColumnWidth(1,102);

复制代码


注:在进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后,

反之则设置不会生效。如上述代码所示。

三、添加行(添加三行一样的信息):

  1. for(int i = 0; i < 3; i++) 
  2.      model->setItem(i,0,new QStandardItem("2009441676")); 
  3.         //设置字符颜色 
  4.      model->item(i,0)->setForeground(QBrush(QColor(255, 0, 0))); 
  5.         //设置字符位置 
  6.      model->item(i,0)->setTextAlignment(Qt::AlignCenter); 
  7.      model->setItem(i,1,new QStandardItem(QString::fromLocal8Bit("哈哈"))); 
  8. }

复制代码


四、删除行:

  1. //x是指定删除哪一行 
  2. model->removeRow(x); 
  3. //删除所有行 
  4. model->removeRows(0,model->rowCount());

复制代码


再举一个例子:

在一个药品划价模块中有这样的操作流程:

检索处方项目成功后,把该项目显示到QTableView里,把需要编辑的数量字段提供给用户输入,用户输入确认后,该项目留在列表中,然后开始下一项目检索录入。

实现过程如下:

录入的项目保留在临时表tmp中,界面上的QTableView取名为tbList,与tbList关联的Model取名为tb1。检索成功后,把检索结果插入到临时表中,把需要编辑的字段提供给用户。

  1. tb1=newQSqlTableModel(this,*dbR); //dbR是本应用中的数据源 
  2. tb1->setTable("tmp"); //处方临时表

复制代码


程序中需要显示的时候,

  1. tbList->setModel(NULL); //清除原先数据集 
  2. tbList->setModel(tb1); //刷新显示

复制代码


程序中需要提供编辑输入的时候

  1. QModelIndexmdidx=m_ui->tbList->model()->index(row,column); //获得需要编辑的单元格的位置 
  2. m_ui->tbList->setFocus(); //把输入焦点交给tbList 
  3. m_ui->tbList->setCurrentIndex(mdidx); //设定需要编辑的单元格 
  4. m_ui->tbList->edit(mdidx); //开始编辑

复制代码


有一个问题需要注意。向QTableView中添加记录时,字段一定要完整,不能有空白字段,否则结果无法保存。切记。

如果需要对用户输入做限制,比如只能在指定的字段输入指定的数据类型,可以通过QItemDelegate来实现。

贴一段代码,说明QTableView基本用法

  1. QStandardItemModel model; 
  2. //设置大小 
  3. model.setColumnCount(3); //列 
  4. model.setRowCount(musicFound); //行 
  5. //设置标题 
  6. model.setHeaderData(0,Qt::Horizontal,"ID"); 
  7. //添加数据 
  8. for(int j=0;j<row;j++)
  9. {
  10.             //写id
  11.             QStandardItem *itemID = new QStandardItem("hello");//QString::number(j)));
  12.             model.setItem(j,0,itemID);
  13. }
  14. //选择这个model 
  15. m_ui->tableView->setModel(&model); 
  16. //隐藏左边那列 
  17. m_ui->tableView->verticalHeader()->hide(); 
  18. //列宽 
  19. m_ui->tableView->setColumnWidth(0,30); 
  20. //整行选择 
  21. m_ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

 

 

QT的MVC(View/Delegate)模型十分强大,可以利用各种控件来对表格的输入进行限制,不过我以前一直没有过,这几天研究了一下,写个小例子,希望大家喜欢。
 
如果看不懂这个例子,请先看QT的自带例子:http://qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html
 
思路:
 
1:为每一列定义委托:
A:第一列是编号列,使用只读委托,令该列的单元格是只读的
B:第三列是ID列,只能输入1-12个数字,利用QLineEdit委托和正则表达式对输入进行限制
C:第四年龄列,利用QSpinBox委托进行输入限制,只能输入1-100之间的数字
D:第五列是性别列,利用QComboBox委托对输入进行限制,该列的单元格只能输入Male或Female
E:第六列是头像列,在该列的单元格中央放置一张头像
2:定义代理类,把所有单元格中的字符居中显示。
3:利用QSS,将表格的背景色弄成黄蓝相间。
 
截图:
 


上代码:
 1.#include <QtGui>   
 2.  
 3.//编号列,只读委托   
 4.//这个方法我还真想不到,呵呵   
 5.class ReadOnlyDelegate : public QItemDelegate  
 6.{  
 7.    Q_OBJECT  
 8.public:  
 9.    ReadOnlyDelegate(QObject *parent = 0): QItemDelegate(parent) { }  
 10.    QWidget *createEditor(QWidget*parent, const QStyleOptionViewItem &option, 
 11.        const QModelIndex &index) const  
 12.    {  
 13.        return NULL;  
 14.    }  
 15.};  
 16.  
 17.//ID列,只能输入1-12个数字   
 18.//利用QLineEdit委托和正则表达式对输入进行限制   
 19.class UserIDDelegate : public QItemDelegate  
 20.{  
 21.    Q_OBJECT  
 22.public:  
 23.    UserIDDelegate(QObject *parent = 0): QItemDelegate(parent) { }  
 24.    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, 
 25.        const QModelIndex &index) const  
 26.    {  
 27.        QLineEdit *editor = new QLineEdit(parent);  
 28.        QRegExp regExp("[0-9]{0,10}");  
 29.        editor->setValidator(new QRegExpValidator(regExp, parent));  
 30.        return editor;  
 31.    }  
 32.    void setEditorData(QWidget *editor, const QModelIndex &index) const  
 33.    {  
 34.        QString text = index.model()->data(index, Qt::EditRole).toString();  
 35.        QLineEdit *lineEdit = static_cast<QLineEdit*>(editor);  
 36.        lineEdit->setText(text);  
 37.    }  
 38.    void setModelData(QWidget *editor, QAbstractItemModel *model,  
 39.        const QModelIndex &index) const  
 40.    {  
 41.        QLineEdit *lineEdit = static_cast<QLineEdit*>(editor);  
 42.        QString text = lineEdit->text();  
 43.        model->setData(index, text, Qt::EditRole);  
 44.    }  
 45.    void updateEditorGeometry(QWidget *editor,  
 46.        const QStyleOptionViewItem &option, const QModelIndex &index) const  
 47.    {  
 48.        editor->setGeometry(option.rect);  
 49.    }  
 50.};  
 51.  
 52.//年龄列,利用QSpinBox委托进行输入限制,只能输入1-100之间的数字   
 53.class AgeDelegate : public QItemDelegate  
 54.{  
 55.    Q_OBJECT  
 56.public:  
 57.    AgeDelegate(QObject *parent = 0): QItemDelegate(parent) { }  
 58.    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, 
 59.        const QModelIndex &index) const  
 60.    {  
 61.        QSpinBox *editor = new QSpinBox(parent);  
 62.        editor->setMinimum(1);  
 63.        editor->setMaximum(100);  
 64.        return editor;  
 65.    }  
 66.    void setEditorData(QWidget *editor, const QModelIndex &index) const  
 67.    {  
 68.        int value = index.model()->data(index, Qt::EditRole).toInt();  
 69.        QSpinBox *spinBox = static_cast<QSpinBox*>(editor);  
 70.        spinBox->setValue(value);  
 71.    }  
 72.    void setModelData(QWidget *editor, QAbstractItemModel *model,  
 73.        const QModelIndex &index) const  
 74.    {  
 75.        QSpinBox *spinBox = static_cast<QSpinBox*>(editor);  
 76.        spinBox->interpretText();  
 77.        int value = spinBox->value();  
 78.        model->setData(index, value, Qt::EditRole);  
 79.    }  
 80.    void updateEditorGeometry(QWidget *editor,  
 81.        const QStyleOptionViewItem &option, const QModelIndex &index) const  
 82.    {  
 83.        editor->setGeometry(option.rect);  
 84.    }  
 85.};  
 86.  
 87.//性别列,利用QComboBox委托对输入进行限制   
 88.//这一列的单元格只能输入Male或Female   
 89.class SexDelegate : public QItemDelegate  
 90.{  
 91.    Q_OBJECT  
 92.public:  
 93.    SexDelegate(QObject *parent = 0): QItemDelegate(parent) { }  
 94.    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, 
 95.        const QModelIndex &index) const  
 96.    {  
 97.        QComboBox *editor = new QComboBox(parent);  
 98.        editor->addItem("Female");  
 99.        editor->addItem("Male");  
 100.        return editor;  
 101.    }  
 102.    void setEditorData(QWidget *editor, const QModelIndex &index) const  
 103.    {  
 104.        QString text = index.model()->data(index, Qt::EditRole).toString(); 
 105.        QComboBox *comboBox = static_cast<QComboBox*>(editor);  
 106.        int tindex = comboBox->findText(text);  
 107.        comboBox->setCurrentIndex(tindex);  
 108.    }  
 109.    void setModelData(QWidget *editor, QAbstractItemModel *model,  
 110.        const QModelIndex &index) const  
 111.    {  
 112.        QComboBox *comboBox = static_cast<QComboBox*>(editor);  
 113.        QString text = comboBox->currentText();  
 114.        model->setData(index, text, Qt::EditRole);  
 115.    }  
 116.    void updateEditorGeometry(QWidget *editor,  
 117.        const QStyleOptionViewItem &option, const QModelIndex &index) const 
 118.    {  
 119.        editor->setGeometry(option.rect);  
 120.    }  
 121.};  
 122.  
 123.//头像列,只是在单元格中央放一张小图而已   
 124.class IconDelegate : public QItemDelegate  
 125.{  
 126.    Q_OBJECT  
 127.public:  
 128.    IconDelegate(QObject *parent = 0): QItemDelegate(parent) { }  
 129.    void paint(QPainter *painter, const QStyleOptionViewItem &option,  
 130.        const QModelIndex & index ) const  
 131.    {  
 132.        //show.bmp是在工程目录中的一张图片(其实就是QQ的图标啦,呵呵)   
 133.        QPixmap pixmap = QPixmap("show.bmp").scaled(24, 24);  
 134.        qApp->style()->drawItemPixmap(painter, option.rect,  Qt::AlignCenter, QPixmap(pixmap)); 
 135.    }  
 136.};  
 137.  
 138.//代理类,把所有单元格中的字符居中显示   
 139.class VIPModel : public QStandardItemModel  
 140.{  
 141.    Q_OBJECT  
 142.public:  
 143.    VIPModel(QObject *parent=NULL) : QStandardItemModel(parent) { }  
 144.    VIPModel(int row, int column, QObject *parent=NULL)  
 145.        : QStandardItemModel(row, column, parent) { }  
 146.    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const 
 147.    {  
 148.        if( Qt::TextAlignmentRole == role )  
 149.            return Qt::AlignCenter;   
 150.        return QStandardItemModel::data(index, role);  
 151.    }  
 152.  
 153.};  
 154.  
 155.#include "main.moc"   
 156.  
 157.int main(int argc, char *argv[])  
 158.{  
 159.    QApplication app(argc, argv);  
 160.  
 161.    VIPModel *model = new VIPModel(5, 5);  
 162.    QTableView *tableView = new QTableView;  
 163.  
 164.    //把表格的背景调成黄蓝相间   
 165.    //这种方法是在网上看到的,用起来还真方便啊   
 166.    tableView->setAlternatingRowColors(true);  
 167.    tableView->setStyleSheet("QTableView{background-color: rgb(250, 250, 115);" 
 168.        "alternate-background-color: rgb(141, 163, 215);}");  
 169.  
 170.    tableView->setWindowTitle("VIP List");  
 171.    tableView->resize(700, 400);  
 172.    tableView->setModel(model);  
 173.    QStringList headerList;  
 174.    headerList << "No." << "ID" << "Name" << "Age" << "Sex" << "Show";  
 175.    model->setHorizontalHeaderLabels(headerList);  
 176.    tableView->verticalHeader()->setVisible(false);  
 177.    tableView->horizontalHeader()->setStretchLastSection(true);  
 178.  
 179.    //为每一列加载委托   
 180.    ReadOnlyDelegate readOnlyDelegate;  
 181.    tableView->setItemDelegateForColumn(0, &readOnlyDelegate);  
 182.    UserIDDelegate userIDDelegate;  
 183.    tableView->setItemDelegateForColumn(1, &userIDDelegate);  
 184.    AgeDelegate spinBoxDelegate;  
 185.    tableView->setItemDelegateForColumn(3, &spinBoxDelegate);  
 186.    SexDelegate comboBoxDelegate;  
 187.    tableView->setItemDelegateForColumn(4, &comboBoxDelegate);  
 188.    IconDelegate iconDelegate;  
 189.    tableView->setItemDelegateForColumn(5, &iconDelegate);  
 190.  
 191.    for(int i=0; i<10; i++)  
 192.    {  
 193.        QModelIndex index = model->index(i, 0, QModelIndex());  
 194.        model->setData(index, i);  
 195.    }  
 196.  
 197.    tableView->show();  
 198.    return app.exec();  
 199.} 

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

那些很熟悉但又叫不出名字的设计法则:干扰效应

资深UI设计者


如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

《名侦探柯南》中总是提到福尔摩斯的一段话:「When you have eliminated the impossible, whatever remains, however improbable, must be the truth.(排除一切不可能的,剩下的即使再不可能,那也是真相。)」这句话用干扰效应来解释最好不过,本期我们来聊聊。


想看更多设计法则,这个专题里全都有:设计法则专题

一、干扰效应(Interference Effect )定义

干扰效应:一种现象,同时思考两件或两件以上的事情时,思考的过程会变得比较慢,也不准确。

二、干扰效应产生理由

有两种或两种以上的知觉或认知过程发生冲突时,就会产生干扰效应。

人们的知觉和认知的不同与心智模型有关,这些模式会独立分析、处理收到的相关信息,处理后会传送到工作记忆区,并作出诠释。当输出资料一致,诠释过程会又快又好。当输出资料不一致,就会产生干扰,需要一些其他的处理,以便更好地解决。解决这些问题需要浪费很多时间,对性能也会产生不好的影响。

三、干扰效应案例

1. 斯特鲁普干扰

斯特鲁普干扰(Stroop Interference):刺激物不相干的一面引发了思考过程,因而干扰了刺激物相关方面的思考。

图标协同文字可以准确的向用户传递所要表达的内容,二手在常用的 App 中截出了一些图标,却发现现在很多的图标在信息传达方面有所欠缺。

举四个例子:

下面这组图标,「地方菜系、美食、晚餐、大牌简餐」几个图标没有表达出所要传达的信息,还有几个图标要借助文字才能表达出其含义。即使图标设计的非常精美,但是图标功能却存在缺失,而且这几个图标不能刺激用户对信息的理解,反倒是让用户更加迷惑。设计师也注意到了这个情况,所以最近改版后,信息传达变的更加直接,减少了干扰。

接下来的这组图标也存在同样的问题,这组图标想借助图标上产品本身的含义来传达给用户要表达的信息,但是这需要用户对这些产品本身的定位非常明确,如果不明确的话只能干扰用户的行为,例如,用户需要知道「吕」是个韩国洗发水之后才能拐弯抹角的联想到「全球超市」,再例如:中间「轻奢」图标,用的是劳力士绿水鬼,一款70000+还要靠等才能买到的奢华手表,二手认为跟轻奢的定义有矛盾,除非这并不是劳力士。

米家这套图标二手认为可以准确传达所描述的信息,因为米家有种类繁多的 loT 产品,有时候一款产品更是分为不同的版本,如果用户只是根据名称选择的话不仅繁琐而且十分耗时,所以在选择产品时,米家把所有产品外形准确刻画成图标,用户可以先根据自己产品的外形大致选择型号,再根据文字提示准确的选择自己产品的版本。

△ 米家App图标

滴滴这套图标表达也很准确,不同的服务通过不同的图标可以准确传达。

△ 滴滴图标

2. 加纳干扰

加纳干扰(Garner Interference):刺激物一个无关的变化,引发了思考过程,干扰到跟刺激物相关的思考过程。

举个例子:如下图,指出单独一排的形状,比指出两排其中一排的形状要简单。两排形状紧靠在一起,激发了想说出旁边形状的思考程序,造成干扰。

根据上面这个案例,二手联想到了「个人中心」页面,大部分「个人中心」页面都选择了竖排列表布局。列表布局就是以列表的形式展示具体内容,并且能够根据数据的长度自适应显示,Material Design 建议列表是「可快速扫描」,适合显示类似的重复的内容。列表布局也是最快速的 app 布局方式。这种排列在某方面上就是降低了干扰。相比于列表布局,宫格导航是将主要入口全部聚合在页面,让用户做出选择。这样的组织方式无法让用户在第一时间看到内容,选择压力较大,采用这种导航的应用已经越来越少,往往用在二级页作为内容列表的一种图形化形式呈现,或是作为一系列工具入口的聚合。

△ 列表布局和宫格导航

3. 前向干扰

前向干扰(Proactive Interference):现存记忆干扰了学习。

举个例子:手淘的最近改版中,店铺首页顶部导航和底部自定义菜单结构化调整,但是有一个细节的变化让二手不断的犯错——返回按钮改成了关闭按钮,二手习惯点击左上角返回按钮来返回上一级菜单,改版后依旧习惯点击左上角,但是打开的是店铺印象,仅仅是图标左右位置简单的调换,已经让二手在使用的过程中挫败感强烈。这就是现在的使用记忆已经严重干扰了学习。所以产品在改版迭代的时候,尽量不要干扰用户已经熟悉的路径或是破坏用户使用习惯。

△ 手淘的店铺首页改版

4. 后向干扰

后向干扰(Retrosctive Interference):学习干扰了现存记忆。

这个正好跟上面相反,二手不断培养现在的使用习惯,渐渐的就忘记了上一版的路径。

四、怎样预防干扰

要想预防干扰,就要避免输出思考过程中相互冲突的设计。知觉的干扰效应,通常是因为信息的传达过程中有歧义,或是因为把互相干扰的元素结合在一起。要把干扰效应降到,首先要求设计师用准确的设计语言传达信息,如果这样还是无法让用户很好的理解,其次可以考虑利用文字或者引导来告知用户。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

 


sublime的使用

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

一、 前言

       使用Sublime Text 也有几个年头了,版本也从2升级到3了,但犹如寒天饮冰水,冷暖尽自知。最初也是不知道从何下手,满世界地查找资料,但能查阅到的资料,苦于它们的零碎、片面,不够系统和全面,所以一路走来,耗费了本人大量的时间和精力。所以蒙生了写这篇《Sublime Text 3 全程详细指南》,一来对自己的经验是一个总结,二来可以给初学者做个系统、全面的指引,让他们少走我当时走过的弯路,从而能快速地掌握Sublime Text这个优秀的编辑器。

      目前我正在使用的版本是Sublime Text 3 Build 3083的beta版本,已经相当稳定。所以本文所有讲解均以此版本为准,并以windows 7 x64平台为示例。至于其它的版本也不会有太大的差异。

 

二、 Sublime Text 特点

      1、Sublime Text 是一款跨平台代码编辑器,在Linux、OS X和Windows下均可使用。

      2、Sublime Text 是可扩展的,并包含大量实用插件,我们可以通过安装自己领域的插件来成倍提高工作效率。

      3、Sublime Text 分别是命令行环境和图形界面环境下的最佳选择,同时使用两者会大大提高工作效率。

      4、Sublime Text 为收费软件,建议有能力的人付费使用,以支持开发者。不过不购买也可以一直使用。

 

三、下载与安装

      1、下载:目前官方的正式版本为v2.0.2,我们打开官网下载链接http://www.sublimetext.com/3,下载Sublime Text 3 Build 3083。

 

      其中“Windows 64 bit”下载下来为“Sublime Text Build 3083 x64 Setup.exe”的安装程序;“portable version”下载下来为“Sublime Text Build 3083 x64.zip”编辑器的包,解压后无需安装就能运行。

 

      如果你的电脑平台是windows x86,也就是32位的系统,请点击“Windows”下载32位的安装程序,如果不想安装,就点击其后的“portable version”下载它的32位编辑器包。

 

      2、安装:双击上一步下载下来的“Sublime Text Build 3083 x64 Setup.exe”,记得选择“Add to explorer context menu”,把它加入右键快捷菜单。其它以默认设置安装。

 

      3、安装完毕,双击桌面“Sublime Text 3”快捷图标,打开程序,就可以见到“Sublime Tex的庐山真面目了。

 

      4、如果你不是把“Sublime Text 3”安装在默认路径,比如你把它安装在D盘,请你添加环境变量。

 

四、设置字体及字体大小

      点菜单“Preferences--->Setting - User”,打开“Preferences.sublime-settings”。

 

      如下图添加所需代码,根据自己的喜好进行设置。设置字体用"font_face":"字体名称",设置字体大小用"font_size":"字体大小",注意它们之间需要用逗号隔开。

 

五、安装插件

       学习Sublime Text扩展插件的安装前,让我们来先了解一下它的插件官方网站:https://packagecontrol.io/

 

     当我们在搜索框中输入插件的关键字,相关的插件就会在下面实时显示出来,我们就可以选择自己想要的插件进行了解。

 

1、安装Package Control

      Package Control为插件管理包,所以我们首先要安装它。有了它,我们就可以很方便的浏览、安装和卸载Sublime Text中的插件。

      打开Package Control的网页https://packagecontrol.io/,点击右侧的“Install Now”按钮。

 

进入https://packagecontrol.io/installation#st3页面,选择“SUBLIME TEXT 3”选项卡,复制出里面的代码段:

 

import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

 

      双击桌面“Sublime Text 3”打开程序,快捷键 Ctrl + ` 打开Sublime Text控制台,将之前复制的代码粘贴到控制台里,按下“Eenter”键。

 

      等待其安装完成后关闭程序,重新启动“Sublime Text 3”,点开菜单“Preferences”可见“Package Control”项,说明插件管理包已安装成功。

 

2、ConvertToUTF8 插件安装

      a)功能说明:ConvertToUTF8 能将除UTF8编码之外的其他编码文件在 Sublime Text 中转换成UTF8编码,在打开文件的时候一开始会显示乱码,然后一刹那就自动显示出正常的字体,当然,在保存文件之后原文件的编码格式不会改变。

      b)安装方法一:快捷键 Ctrl+Shift+p ,打开 “Command Palette” 悬浮对话框,在顶部输入 “install”, 然后下选点击 “Package Control:Install Package”。

 

      在出现的悬浮对话框中输入 “convert”, 然后点选下面的 “ConvertToUTF8” 插件,就会自动开始安装,请耐心等待。

 

       当插件安装成功后,Sublime Text 3 编辑器底端的状态栏会有安装成功的提示。

 

 

      c)安装方法二:你还可以下载完整的插件包后解压,放入 C:\Users\userName\AppData\Roaming\Sublime Text 3\Packages 目录下,以达到安装插件的目的。下载地址:https://github.com/seanliang/ConvertToUTF8

如何找到 Packages 目录?一个快捷的方法是:双击打开你的 “Sublime Text 3”,点菜单 “Preferences--->Browse Packages...”。

 

      它会直接打开插件包存放的目录 “Packages”。然后你就可以把下载后解压好的插件包复制到这个 Packages 目录下。

      当然,如果你熟悉 git,你还可以用 git 从插件的 GitHub 库直接克隆插件包到 Packages 目录下。

 

      备注: 以后所有插件都可以通过以上介绍的两种方法安装,将不再赘述,推荐方法一,使用“ Package Control”安装插件。

 

3、BracketHighlighter 插件

      功能说明:高亮显示匹配的括号、引号和标签。

      插件地址:https://github.com/facelessuser/BracketHighlighter/tree/BH2ST3

 

4、LESS 插件

      功能说明:LESS语法高亮显示。

      插件地址:https://github.com/danro/LESS-sublime

 

5、sublime-less2css 插件

      功能说明:将less文件编译成css文件。

      插件地址:https://github.com/facelessuser/BracketHighlighter/tree/BH2ST3

      辅助工具:安装后从 https://github.com/duncansmart/less.js-windows 下载 less.js-windows,然后配置 less.js-windows 的环境变量。

 

6、Emmet 插件

      功能说明:Emmet的前身是大名鼎鼎的Zen codin。前端开发必备,HTML、CSS代码快速编写神器。

      使用方法:默认快捷键 Tab

      插件地址:https://github.com/sergeche/emmet-sublime

      辅助工具:PyV8 下载地址: https://github.com/emmetio/pyv8-binaries

      注意:Emmet 插件需要 PyV8 插件的支持,所以在安装 Emmet 时,会自动安装 PyV8 插件,如果安装后 Emmet 不能正常保用,很有可能是因为 PyV8 没有安装完全,Sublime Text 2 和 3 容易出现这个问题。你可以删除它,然后手动下载,采用方法二安装 PyV8 插件。

 

      使用方法示例:书写代码 ul#nav>li.item$*8>a{Item $}

 

      然后把光标定在这行代码的最后面,按 Tab 键,就会自动生成:

      <ul id="nav">

              <li class="item1"><a href="">Item 1</a></li>

             <li class="item2"><a href="">Item 2</a></li>

             <li class="item3"><a href="">Item 3</a></li>

             <li class="item4"><a href="">Item 4</a></li>

             <li class="item5"><a href="">Item 5</a></li>

             <li class="item6"><a href="">Item 6</a></li>

             <li class="item7"><a href="">Item 7</a></li>

             <li class="item8"><a href="">Item 8</a></li>

    </ul>

 

 

      更多更详细的使用方法,请查阅 Emmet 官网:http://docs.emmet.io/

 

7、JsFormat 插件

      功能说明:JavaScript代码格式化。

      使用方法:在打开的JavaScript文件里点右键,选择JsFormat。

      插件地址:https://github.com/jdc0589/jsformat

 

8、ColorHighlighter 插件

      功能说明:显示所选颜色值的颜色,并集成了ColorPicker

      插件地址:https://github.com/Monnoroch/ColorHighlighter

 

      在16进制的颜色值上点右键,选择“Choose color”,会弹性颜色拾色器,在需要的色块上单击。

 

 

      看看效果,颜色值和显示颜色都相应做了改变。

 

9、Compact Expand CSS Command 插件

      功能说明:使CSS属性展开及收缩,格式化CSS代码。

      使用方法:按 Ctrl+Alt+[ 收缩CSS代码为一行显示,按 Ctrl+Alt+] 展开CSS代码为多行显示。

      插件地址:https://gist.github.com/vitaLee/2863474 或者:https://github.com/TooBug/CompactExpandCss

 

      快捷键 Ctrl+Alt+[ 收缩CSS代码为效果: 

 

      快捷键 Ctrl+Alt+] 展开CSS代码为多行显示效果:

 

10、SublimeTmpl 插件

      功能说明:快速生成文件模板。

      使用方法:SublimeTmpl默认的快捷键如下,如果快捷键设置冲突可能无效。

                    Ctrl+Alt+h              新建 html 文件

                    Ctrl+Alt+j               新建 javascript 文件

                    Ctrl+Alt+c               新建 css 文件

                    Ctrl+Alt+p              新建 php 文件

                    Ctrl+Alt+r               新建 ruby 文件

                    Ctrl+Alt+Shift+p     新建 python 文件

      插件地址:https://github.com/kairyou/SublimeTmpl

 

      下图为按快捷键 Ctrl+Alt+h 新建的一个 html 文件。

 

      相应的模板为tmpl格式的文件,它们保存在C:\Users\ usersName\AppData\Roaming\Sublime Text 3\Packages\SublimeTmpl\templates下。

 

      当然你可以根据自己的喜好来更改模板格式。例如把“html.tmpl”改为早期的html标准格式后保存。

 

      现在按快捷键 Ctrl+Alt+H,新建一个 html 文件,其格式就和更改后模板格式完全一样了。如下图:

 

      新增语言:你还可以增加模板文件夹中没有的文件模板,并做相应的设置来使用这一功能。具体可以参考它的中文文档:http://www.fantxi.com/blog/archives/sublime-template-engine-sublimetmpl/

 

11、Alignment 插件

      功能说明:使代码格式的自动对齐。

      使用方法:快捷键Ctrl+Alt+A,可能与QQ截图冲突,二者中的一个要重置快捷键。

      插件地址:https://github.com/kevinsperrine/sublime_alignment

 

12、AutoFileName 插件

      功能说明:自动补全文件(目录)名。

      插件地址:https://github.com/BoundInCode/AutoFileName

 

      安装好后就可以来测试如何使用AutoFileName,先以<link>css档案来示范,当输入href=””的同时,Sublime Text就会将现在编辑档案的路径为中心,判断该路径内的所有档案。

      a)以这个档案为范本它会去抓取跟abc.html在同一层的档案列表。

 

      像我们这次要link的是在css资料夹内的auto.css,所以我们直接衔接打上css/,就会跑出css资料夹内的档案,整个用法以此类推

 

      b)像是<img src=””>的部分也是一样的方式,没什么困难了,弄懂一下路径就好了。

 

     c)再来看看是css档中要用url,也是用同样方式,只不过因为要连到上一层的images资料夹内的arrow.png,所以就前面打..(上层),依序去选择路径即可。

 

13、DocBlockr 插件

      功能说明:快速生成JavaScript (including ES6), PHP, ActionScript, Haxe, CoffeeScript, TypeScript, Java, Groovy, Objective C, C, C++ and Rust语言函数注释。

      使用方法:在函数上面输入/** ,然后按 Tab 就会自动生成注释。

      插件地址:https://github.com/spadgos/sublime-jsdocs

 

      在函数上面输入/** ,然后按Tab 就会自动生成注释。

 

14、SublimeCodeIntel 插件

      功能说明:智能提示。

      插件地址:https://github.com/SublimeCodeIntel/SublimeCodeIntel

 

15、HTML-CSS-JS Prettify 插件

      功能说明:HTML、CSS、JS格式化。

      插件地址:https://github.com/victorporof/Sublime-HTMLPrettify

      安装方法:安裝这个套件前必须先安裝node.js,指定 node.exe 的执行档所在位置。进而安装HTML-CSS-JS Prettify。

      使用方法一:View -> Show console 或者使用快捷键(Ctrl + `),在命令列的地方輸入:view.run_command("htmlprettify"),然后按下Enter。

 

      使用方法二:默认快捷键:Ctrl+Shift+H。

                       你也可以自行设置快捷键,菜单 “Preferences---> Key Bindings – User” 里新增:

{ 
    "keys": ["ctrl+shift+o"], 
    "command": "htmlprettify" 
}

 

       完成后保存,以上代码设定执行此插件的快捷键是:Ctrl+Shfit+O,自己设定的话就要测试一下,不要跟其他快捷键冲突。

 

      格式化前:

 

      格式化后:

 

16、SideBarEnhancements 插件

      功能说明:侧栏菜单扩充功能。

      插件地址:https://github.com/titoBouzout/SideBarEnhancements/tree/st3

 

17、View In Browser 插件

      功能说明:Sublime Text保存后网页自动同步更新。

      插件地址:https://github.com/adampresley/sublime-view-in-browser

      使用方法:在打开的文档任一处点右键,选择“View In Browser”,就会用默认的浏览器自动打开该文件。

 

      如果你电脑装有多个浏览器,你想换其它的作为此操作的默认浏览器,你可以按以下方法设置:

 

      打开“View In Browser.sublime-settings”,写入以下代码:

{
    "browser": "chrome64"
}

 

      这样你就把它默认设置为“Chrome”浏览器了,当然你还可以改成“Firefox”、“Safari”等等,前提是你的电脑事先已安装好了这些浏览器。

 

18、LiveReload 插件

      功能说明:调试网页实时自动更新。

      使用说明:快捷键 Ctr+Alt+V

      插件地址:https://github.com/dz0ny/LiveReload-sublimetext2

 

      同时Chrome浏览器也要安装LiveReload 的扩展插件。

 

19、TortoiseSVN 插件(win下需要安装有TortoiseSVN客户端支持)

      功能说明:版本控制工具。

      插件地址:https://github.com/dexbol/sublime-TortoiseSVN

 

20、Theme-Soda 插件

      功能说明:的 Sublime Text 主题之一。

      插件地址:https://github.com/buymeasoda/soda-theme

      安装完成后,点菜单 Preferences--->Settings - User,根据需要的主题效果,添加如下代码。

      Soda 亮色主题请添加:

{
    "soda_classic_tabs": true,
    "theme": "Soda Light 3.sublime-theme",
}

     

      Soda 暗色主题请添加:

{
    "soda_classic_tabs": true,
    "theme": "Soda Dark 3.sublime-theme",
}

 

 

      要达到图中的效果,你还需要下载与之搭配的 color scheme。下载地址:http://buymeasoda.github.com/soda-theme/extras/colour-schemes.zip,如果你喜欢 Soda Dark 和 Monokai,我建议你使用 Monokai Extended。这个 color scheme 是 Monokai Soda 的增强,再配合 Markdown Extended ,将大大改善 Markdown 的语法高亮。

 

      如果加代码 "soda_classic_tabs":true,文件标签页形状会如下显示:

 

      如果不添加此行代码,文件标签页形状会如下显示:

 

21、Theme-Flatland 插件

      功能说明:的 Sublime Text 主题之一。

      插件地址:https://github.com/thinkpixellab/flatland

 

22、Theme-Nexus 插件

      功能说明:的 Sublime Text 主题之一。

      插件地址:https://github.com/EleazarCrusader/nexus-theme

 

 

六、插件列表

    快捷键 Ctrl+Shift+P,在对话框中输入“list”,选择“Package Control:List Packages”。

      会列出所有已安装的插件。这样可以很方便地了解自己已经安装了哪些插件。

 

七、移除插件

      有时候我们需要移除自己不想要的插件,具体操作如下:快捷键 Ctrl+Shift+P,在对话框中输入“remove”,选择“Package Control: Remove Packages”。

 

      然后在出现的插件列表中点选你要移除的插件。

 

八、Sublime Text 的窗口操作

1、分屏

      Sublime Text有多种分屏形式,让我来具体地看一看。菜单 “View-àLayout”就可以选择你的分屏样式。

 

      对应的快捷键与分屏情况如下:

      Alt+Shift+1       Single             独屏

      Alt+Shift+2       Columns:2      纵向二栏分屏

      Alt+Shift+3       Columns:3      纵向三栏分屏

      Alt+Shift+4       Columns:4      纵向四栏分屏

 

      Alt+Shift+8       Rows:2          横向二栏分屏

      Alt+Shift+9       Rows:3          横向三栏分屏

 

      Alt+Shift+5       Grid              四格式分屏

 

2、创建新窗

      快捷键Ctrl+Shift+N 创建一个新窗口。

 

九、使用技巧荟萃

 (未完待续。。。。。。)

 

 

 

 

 

 

 

 

 

十、Sublime Text 快捷键列表

      快捷键按类型分列如下:

1、通用

      ↑↓← →    上下左右移动光标

      Alt    调出菜单

      Ctrl + Shift + P    调出命令板(Command Palette)

      Ctrl + `    调出控制台

2、编辑

      Ctrl + Enter    在当前行下面新增一行然后跳至该行

      Ctrl + Shift + Enter    在当前行上面增加一行并跳至该行

      Ctrl + ←/→    进行逐词移动

      Ctrl + Shift + ←/→    进行逐词选择

      Ctrl + ↑/↓    移动当前显示区域

      Ctrl + Shift + ↑/↓    移动当前行

3、选择

      Ctrl + D    选择当前光标所在的词并高亮该词所有出现的位置,再次 Ctrl + D 选择该词出现的下一个位置,在多重选词的过程中,使用 Ctrl + K 进行跳过,使用 Ctrl + U 进行回退,使用 Esc 退出多重编辑

      Ctrl + Shift + L    将当前选中区域打散

      Ctrl + J    把当前选中区域合并为一行

      Ctrl + M    在起始括号和结尾括号间切换

      Ctrl + Shift + M    快速选择括号间的内容

      Ctrl + Shift + J    快速选择同缩进的内容

     Ctrl + Shift + Space    快速选择当前作用域(Scope)的内容

4、查找&替换

      F3    跳至当前关键字下一个位置

      Shift + F3    跳到当前关键字上一个位置

      Alt + F3    选中当前关键字出现的所有位置

      Ctrl + F/H    进行标准查找/替换,之后:

      Alt + C    切换大小写敏感(Case-sensitive)模式

      Alt + W    切换整字匹配(Whole matching)模式

      Alt + R    切换正则匹配(Regex matching)模式

      Ctrl + Shift + H    替换当前关键字

      Ctrl + Alt + Enter    替换所有关键字匹配

      Ctrl + Shift + F    多文件搜索&替换

5、跳转

      Ctrl + P    跳转到指定文件,输入文件名后可以:

      @ 符号跳转    输入@symbol跳转到symbol符号所在的位置

      # 关键字跳转    输入#keyword跳转到keyword所在的位置

      : 行号跳转    输入:12跳转到文件的第12行。

      Ctrl + R    跳转到指定符号

      Ctrl + G    跳转到指定行号

6、窗口

      Ctrl + Shift + N    创建一个新窗口

      Ctrl + N    在当前窗口创建一个新标签

      Ctrl + W    关闭当前标签,当窗口内没有标签时会关闭该窗口

      Ctrl + Shift + T    恢复刚刚关闭的标签

7、屏幕

      F11    切换至普通全屏

      Shift + F11    切换至无干扰全屏

      Alt+Shift+1       Single             切换至独屏

      Alt+Shift+2       Columns:2      切换至纵向二栏分屏

      Alt+Shift+3       Columns:3      切换至纵向三栏分屏

      Alt+Shift+4       Columns:4      切换至纵向四栏分屏

      Alt+Shift+8       Rows:2          切换至横向二栏分屏

      Alt+Shift+9       Rows:3          切换至横向三栏分屏

      Alt+Shift+5       Grid              切换至四格式分屏

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档