【问题标题】:Is it possible to use only a portion of QImage for styling?是否可以仅使用 QImage 的一部分进行样式设置?
【发布时间】:2018-04-12 18:36:33
【问题描述】:

让我们以我的previous question 的图像的水平精灵为例:

所以,我在 1 中有 4 个图像。假设我只想使用绿色圆圈来设置 QComboBox 箭头的样式。我知道我可以用一张图片来设置样式

QComboBox::down-arrow {
    image: url(:/downarrow.png);
}

但是是否有可能(在样式表中或通过其他方式)只获取使用的图像的一部分?

【问题讨论】:

    标签: c++ qt qtstylesheets


    【解决方案1】:

    不幸的是,Qt 样式表无法做到这一点,因为它们不支持 background-position 的绝对值,如 documentation

    中所述

    链接的question 的答案仍然是使用 Qt 实现这一点的最佳方式。

    【讨论】:

    • 您对我的问题的链接并没有真正给出答案:因为我还是检索了一个 QImage,我怎样才能把这个 QImage 放在样式表中?
    • 对不起,我可能误解了你的问题。我相信您要求使用基于样式表的方法作为 getNthImageFromSprite() 方法的替代方法,以仅提取 4 个圆圈中的一个。正如我所说,这对于 Qt 样式表是不可能的。既然你说你有这个文件存储在你的嵌入式资源中,你为什么不简单地存储 4 个不同的文件呢?
    • S. Monteleone:我可以(而且我知道怎么做),但我的想法是将我所有的图像存储在一个精灵中。
    • @IAmInPLS 那么您有两种可能的途径:从 QComboBox 派生您的自定义小部件并在那里重新实现绘画或编写您自己的 QStyle 并覆盖 drawControl() 方法来处理这种特殊情况。
    • 当然,我只是想看看是否有更简单的方法:-)
    猜你喜欢
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多