如何使用Qt GUI小部件的图像

时间:2012-09-18 03:18:42

标签: qt4 qtgui

我已经在Qt应用程序上工作了一段时间,在重写了很多代码之后,我想给GUI一个提升。所以我看着GUI设计,并注意到大多数使用图像而不是原生按钮/滚动条/等。

我的主要问题是如何拍摄原生小部件,例如按钮,并显示按钮的图像,该按钮具有按钮的所有功能(动画点击,信号,插槽等)。我已经看过QML和其他方法来做到这一点,但我还没有找到使用常规C ++和Qt的方法。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用palette和/或stylesheets来获得您想要的外观,或者至少接近您想要的外观。这就是我为大多数用途推荐的方式,老实说。

对于按钮,您可以通过继承QAbstractButton并为所有各种状态绘制自己的图像来执行某些操作。您需要确定要支持的状态以及何时绘制它们(例如,查看传递给paintEvent的选项)。这有点困难,但代码方面相当简单。这个选项的主要问题是生成图像,结果很容易调整大小 - 也就是说,基本上不允许这些按钮调整大小。另一个缺点是你必须为你想要设计的每个小部件做类似的事情,其中​​很多都不像按钮那么简单。

要一路走下去,您可以查看QStyle以及各种样式的实现方式。使用它们,您可以真正使任何窗口小部件显示出您希望它出现的方式(在绘制它的大小的约束内)。到目前为止,这是最难理解的做法,以及选项是什么。此外,我最后一次看,许多选项在特定情况下都没有完全记录下来,因此当我不得不以这种方式进行一些更改时,这非常属于试错。