【问题标题】:QPixmap - How to repeat pixmap, when size is bigger than source imageQPixmap - 当尺寸大于源图像时如何重复像素图
【发布时间】:2020-11-12 12:54:03
【问题描述】:

我正在调查关于QPixmap 如何正确设置图像像素图(https://doc.qt.io/qt-5/qpixmap.html#scaled 等)的 Qt 文档。

我正在尝试将不同类型的像素图设置为 QGraphicItem,但它们都不自然:

使用以下代码行(及其参数变化),但我无法获得我想要的结果:

this->mPixmap = QPixmap(path).scaled(mRect.width(), mRect.height(), Qt::KeepAspectRatioByExpanding);

有什么方法可以设置像素图,使其在保持纵横比的对象上“重复”,所以它看起来像这样?

感谢您的任何帮助。

【问题讨论】:

  • 使用QPixmap 创建QBrush?
  • 哇,这么简单,而且工作得非常好@G.M——尽管它也在 Y 坐标上重复。有没有办法缩放它以匹配项目高度,然后在 X 坐标上重复它?
  • 不幸的是,不要这么认为。您最好的选择可能是根据需要手动缩放高度(可能使用然后使用高度缩放的像素图来创建画笔。

标签: c++ qt qpixmap


【解决方案1】:

这是一个基于 G.M. 的解决方案。评论:

painter->setBrush(QPixmap(":/img/conv.png").scaledToHeight(mRect.height()));
painter->setBrushOrigin(mRect.topLeft().x(), mRect.topLeft().y());
painter->drawRect(mRect);

它完全符合我的需要:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2017-05-28
    • 2011-08-22
    • 2023-02-04
    相关资源
    最近更新 更多