创建"漂亮"Qt自定义小部件

swa*_*son 25 qt widget

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

我知道制作一个"自定义小部件",将列表框和按钮拼凑成一个,这是非常微不足道的,但我怎样才能制作看起来更像这样的东西:

QAnalogWidgets

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

试图搜索任何"自定义小部件qt"相关的东西只是给了我很多关于如何将它们导入设计器等的信息 - 所以任何线索都会受到赞赏.

谢谢!

Kal*_*son 30

根据列出的顺序,基本上有三种不同的尝试:

  1. CSS /样式表.样式表在满足您的需求时非常强大,非常棒,可以更改运行时样式.请参阅样式表示例.
  2. 定制绘画.您可以使用自定义绘画进行任何您想要的操作.Qt对PNG和SVG的支持应该会有很大帮助.你想看一下绘画的例子.另外,请查看QStyle文档,了解您应该考虑哪种类型的样式信息.
  3. 自定义样式.如果您需要自定义整个应用程序,最好创建自己的样式.不适合胆小的人.

基本上,请使用最适合您的解决方案.另外,看看Qt Creator,它的风格很好,所有源代码都可用.


Pat*_*ola 10

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

由于他是对QWidget进行子类化,因此您可以为所有QWidget子类(如QPushButton)执行此操作.

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

  • 谢谢,这看起来很有希望...如果我说法语:D但代码是英文的,所以我会检查出来! (3认同)