【问题标题】:Creating "pretty" Qt Custom Widgets创建“漂亮”的 Qt 自定义小部件
【发布时间】:2010-12-04 02:17:05
【问题描述】:

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

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

QAnalogWidgets

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

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

谢谢!

【问题讨论】:

    标签: qt widget


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,我在 Java Swing 中做了一些自定义绘画,所以我会看一下
    【解决方案2】:

    这是一个通过删除系统顶部栏并绘制背景来创建自定义窗口的教程:http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/

    由于他是 QWidget 的子类,您可以对所有 QWidget 子类(如 QPushButton)执行此操作。

    当您想在 QTDesigner 中使用它们时,只需包含您的类,然后将“经典”小部件推广到您的自定义小部件。这可能会有所帮助:http://pepper.troll.no/s60prereleases/doc/designer-using-custom-widgets.html.

    【讨论】:

    • 谢谢,这看起来很有希望......如果我说法语 :D 但代码是英文的,所以我会检查一下!
    • 对法语感到抱歉...我知道本教程有英文版(因为它是翻译版),但我只为法语版添加了书签。
    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多