【问题标题】:how to set QPixmap as brush for rectangle properly?如何正确将 QPixmap 设置为矩形的画笔?
【发布时间】:2014-08-26 15:05:28
【问题描述】:

我想在paint 方法中将QPixmap 设置为矩形的画笔。我做了这项工作,但设置不准确。我测试了许多宽度和高度值,但效果不佳。总的来说,我应该为正确放入照片的矩形周围设置什么尺寸?

void set_coin::paint(QPainter *painter, const QStyleOptionGraphicsItem  *option,)
{
QRectF rec(x_size,y_size,10,30);
QPixmap coin(":pictures/image/coin.jpg");
coin=coin.scaled(10,30);
painter->setBrush(QBrush(coin));
painter->setPen(Qt::NoPen);
//painter->drawRect(rec);
painter->drawRoundedRect(rec,10,10);
}
QRectF set_coin::boundingRect() const
{
  return QRectF(x_size-10,y_size-10,20,40);
}

【问题讨论】:

  • 您可以通过添加您获得的图像和您想要的其他图像来编辑您的帖子吗?
  • 我想要完整的硬币。在另一张图片中,我在场景中放了 4 个硬币,但显示不完整。

标签: qt paint qpixmap


【解决方案1】:

问题出在这里:

QRectF rec(x_size,y_size,10,30);

文档说:

QRectF::QRectF ( qreal x, qreal y, qreal width, qreal height )

最后两个参数是 x_size 和 y_size,而不是前两个 ;)

编辑:(因为我首先并没有真正理解问题)

我试过你的代码,事实上,你的图像并不“准确”,因为你在 10 到 30 的小区域上看到了 4 个法师。

解决方案是将 x_size(分别为 y_size)设置为 10 的倍数(分别为 30)。

如果您尝试 x_size = 100 和 y_size = 300,它会起作用 ;)

【讨论】:

  • 我知道这个。greal width =10 greal height=30.这些是我的矩形尺寸。
  • 很抱歉再次打扰您。我用 100,300 进行测试。这很好。但是在我的应用程序中,我有一些砖块,我想把这些硬币放在它们上面。这意味着 x_sizey_size 是可变的。我之前处理过另一个图像的问题。有没有办法解决它?这个问题和原始照片的尺寸有关吗?(144x152像素)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多