创建“漂亮”的Qt自定义小部件

25
制作自定义小部件(使用Qt)的过程是什么,如何使其看起来不那么丑陋?制作一个“自定义小部件”通常很容易,比如将列表框和按钮组合在一起,但如果我想制作像QAnalogWidgets这样更好看的小部件应该怎么做呢? 我已经制作了一些简单的模型,基本上使用了我在Photoshop中制作的PNG背景,并在其上放置了一些基本元素,如QLabel,但我认为这不是我应该这样做的。 我知道Qt支持CSS-这是人们用来创建实际上看起来不错的小部件的吗?我需要在paintEvent方法中工作吗?OpenGL?尝试搜索任何与“custom widget qt”相关的内容都只会给我提供有关如何将它们导入到Designer等方面的大量信息-因此,任何线索都将不胜感激。 谢谢!
2个回答

32

基本上有三件不同的事情可以尝试,按列出的顺序:

  1. CSS / 样式表。当样式表足够强大满足您的需求时,它们是很好的并且允许运行时样式更改。请参阅样式表示例
  2. 自定义绘制。您可以使用自定义绘制实现几乎任何想要的效果。 Qt 对 PNG 和 SVG 的支持应该会有所帮助。 您需要查看绘画示例。 此外,请查看QStyle 文档以了解应考虑哪些样式信息。
  3. 自定义样式。如果您需要自定义整个应用程序,则最好创建自己的样式。 不适合胆小者。

基本上,选择对您起作用的最简单的解决方案。此外,请查看Qt Creator,它是美观的,并且所有源代码都可用。


谢谢,我在Java Swing中已经做了一些自定义绘制的工作,所以我会仔细查看它。 - swanson

11

3
谢谢,这看起来很有前途……只可惜我不会说法语 :D但是代码是用英语编写的,所以我会去看看它! - swanson
抱歉用了这个法语词汇...我知道这个教程有英文版(因为它是翻译的),但我只收藏了法语版。 - Patrice Bernassola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接