- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《 Qt Creator 快速入门》第 2 版 第 8 章 界面外观 (1 课时) 一个完善的应用程序不仅应该有实用的功能,还要有 一个漂亮的外观,这样才能使应用程序更加友善,更加吸 引用户。 作为一个跨平台的 UI 开发框架, Qt 提供了强大而灵活 的界面外观设计机制。这一章将学习在 Qt 中设计应用程序 外观的相关知识,在本章开始会对 Qt 风格 QStyle 和调色 板 QPalette 进行简单介绍,然后再对 Qt 样式表( Qt Style Sheets )进行重点讲解,最后还会涉及不规则窗体和透 明窗体的实现方法。 主 要 内 容 ? 8.1 Qt 风格 ? 8.2 Qt 样式表 ? 8.3 特殊效果窗体 ? 8.4 小结 8.1 Qt 风格 Qt 中的各种风格是一组继承自 QStyle 的类。 QStyle 类是一个抽象基类,它 封装了一个 GUI 的外观, Qt 的内建( built-in )部件使用它来执行几乎所有的绘 制工作,以确保它们看起来可以像各个平台上的本地部件一样。一些风格已经 内置在了 Qt 中,例如 Windows 风格和 Motif 风格;而有些风格只在特定的平台 上才有效,例如 Windows XP 风格、 Windows Vista 风格和 Mac OS X 风格。 使用不同风格预览程序 首先进入设计模式,可以先修改界面,然后打开“工具” → “界面编辑 器” → “预览于”菜单,这里列出了现在可用的几种风格,比如选择“ CDE 风格”,预览效果如下图所示。 使用不同风格运行程序 ? 如果想使用不同的风格来运行程序,那么只需要调用 QApplication 的 setStyle() 函数指定要使用的风格即可。 例如,在 main() 函数的“ QApplication a(argc, argv);” 一行代码后添加 如下一行代码: a.setStyle(new QMotifStyle); 这时运行程序,便会使用 Motif 风格。 ? 而如果不想整个应用程序都使用相同的风格,那么可以调用部件的 setStyle() 函数来指定该部件的风格。 调色板 调色板 QPalette 类包含了部件各种状态的颜色组。一个调色板包含三种状态: 激活( Active )、失效( Disabled )和非激活( Inactive )。 Qt 中的所有部 件都包含一个调色板,并且使用各自的调色板来绘制它们自身,这样可以使 用户界面更容易配置,也更容易保持一致。调色板中的颜色组包括: ? 激活颜色组 QPalette::Active ,用于获得键盘焦点的窗口; ? 非激活颜色组 QPalette::Inactive ,用于其他的窗口; ? 失效颜色组 QPalette::Disabled ,用于因为一些原因而不可用的部件(不是 窗口)。 要改变一个应用程序的调色板,可以先使用 QApplication::palette() 函数来 获取其调色板,然后对其进行更改,最后再使用 QApplication::setPalette() 函数来使用该调色板。更改了应用程序的调色板,会影响到该程序的所有窗 口部件。如果要改变一个部件的调色板,可以调用该部件的 palette() 和 setPalette() 函数,这样只会影响该部件及其子部件。 示例: // 获取 pushButton 的调色板 QPalette palette1 = ui-pushButton-palette(); // 设置按钮文本颜色为红色 palette1.setColor(QPalette::ButtonText,Qt::red); // 设置按钮背景色为绿色 palette1.setColor(QPalette::Button,Qt::green); // pushButton 使用修改后的调色板 ui-pushButton-setPalette(palette1); // 设置 lineEdit 不可用 ui-lineEdit-setDisabled(true); QPalette palette2 = ui-lineEdit-palette(); // 设置行编辑器不可用时的背景颜色为蓝色 palette2.setColor(QPalette::Disabled,QPalette::Base,Qt::blue); ui-lineEdit-setPalette(palette2); 设置调色板颜色时可以使用 setColor() 函数,这个函数需要指定颜 色角色( Color Role )。在 QPalette 中,颜色角色用来指定该颜 色所起的作用,例如是背景颜色或者是文本颜色等,主要的颜色 角色如下表所示。 8.
原创力文档


文档评论(0)