qt - 创建 "pretty"Qt 自定义小部件

标签 qt widget

制作看起来不......好吧......丑陋的自定义小部件(使用Qt)背后的过程是什么?

我知道制作一个“自定义小部件”是相当简单的,一个列表框和一个按钮组合在一起,但我将如何制作看起来更像这样的东西:

QAnalogWidgets

我制作了一些粗略的模型,它们基本上使用 PNG 背景(我在 Photoshop 中制作的),并在其顶部放置了 QLabels 等基本元素,但我认为这不是我应该做的。我知道 Qt 支持 CSS——人们用它来创建实际上看起来不错的小部件吗?我需要在paintEvent方法中工作吗? OpenGL?

尝试搜索与“自定义小部件 qt”相关的任何内容只是为我提供了大量有关如何将它们导入设计器等的信息——因此任何线索都将不胜感激。

谢谢!

最佳答案

按照列出的顺序,基本上可以尝试三种不同的方法:

  • CSS / stylesheets .如果样式表足够强大,可以满足您的需求,那么它就很棒,并且允许运行时样式更改。见 stylesheet examples .
  • Custom painting .您几乎可以使用自定义绘画做任何您想做的事情。 Qt 对 PNG 和 SVG 的支持应该会有很大帮助。你会想看看 painting examples .另外,看看 QStyle文档以了解您应该考虑哪些类型的样式信息。
  • Custom styles .如果您需要自定义整个应用程序,最好创建自己的样式。不适合胆小的人。

  • 基本上,选择最适合您的最简单的解决方案。另外,看看Qt Creator ,它的风格很好,所有 source code可用。

    关于qt - 创建 "pretty"Qt 自定义小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522474/

    相关文章:

    c++ - 如何将 qlabel 文本更改为看起来像窗口标题文本

    c++ - 如何将 QtConcurrent 映射到 QVector<double> 的 QList 上并减少为一个 QVector

    Android:自定义时钟小部件服务解决方法?

    c++ - Qt 无法在 Windows 上打开包含文件

    C++ - Windows - 如何(写入&&读取)命令外壳

    android - 如何显示数字时钟小部件的秒数?

    c++ - QtCreator GUI 应用程序,其中包含小部件源代码并在代码中打开

    swift - IntentHandler 不适用于 widgetFamily

    html - 在段落中间创建一段动态文本

    c++ - QGraphicsItem 缩放产生太大的边界矩形