使用具有UI控制的所有状态的1个图像在QT / QML中创建UI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用具有UI控制的所有状态的1个图像在QT / QML中创建UI相关的知识,希望对你有一定的参考价值。

我希望使用PNG图像创建一个新的QML控件。我通常会为每个状态使用1个图像(示例悬停,单击,禁用)。我注意到有些开发人员在1张图片中使用1个图像和控件的所有状态..就像这样......

enter image description here

我想学习如何使用这些图像,我想通过修改独特设计的模板来创建不同的样式是有用的。

所以我的问题是如何使用图像,一次只显示一个状态?

这是一个要使用的示例图像。我想在QML中创建一个简单的子弹图像,执行以下操作。

  1. 从未点击显示灰色,
  2. 徘徊它显示黄色,
  3. 点击它显示橙色。

这是要使用的图像。

enter image description here

我无法弄清楚的是如何只使用每个州的部分图像。

谢谢。

答案

你最好的选择可能是使用QQuickImageProviderHere是一个展示如何对其进行子类化的示例。您也可以使用该页面上其他答案中提到的着色器来完成此操作。

如果您想要一种更简单的方法来实现每个州使用一个图像的原始工作流程,您应该查看Imagine style

以上是关于使用具有UI控制的所有状态的1个图像在QT / QML中创建UI的主要内容,如果未能解决你的问题,请参考以下文章

27.Qt Quick QML-StateTransition

强制 OpenGL 渲染始终在 Qt 中的相同 (Q) 线程上运行

如何在QT的label上显示图像

Qt Quick - 在组件状态更改时动画图像转换的最佳方法是啥?

Qt,来自子类的“没有这样的信号”运行时错误,具有 Q_OBJECT 宏

如何在 ui 文件 QT 中设置图像,例如 QPushButton?