如何解决如何用带有自定义图案的矩形填充 QPixMap?
如果有什么方法可以用这样的自定义图案填充矩形(如果你看不到它,它是一个填充矩形的“+”)?看这里:
现在我设法用 QPainter 和painter.drawRect (x,y,z,b) 创建矩形,并用painter.setBrush (Qt:: Dense1Pattern) 填充它们。但我想用我的自定义图案填充它,所以它创建了一个带有多个矩形的格子图案。
解决方法
如果你想实现一个图案,那么使用 QBrush 并将 QPixmap(或 QImage)设置为纹理:
#include <QApplication>
#include <QLabel>
#include <QPainter>
QPixmap createPattern(const QSize & size,const QColor & background=Qt::white,const QColor & foreground=Qt::black){
QPixmap pixmap(size);
pixmap.fill(background);
{
QPainter painter(&pixmap);
painter.setPen(foreground);
painter.drawLine(0,size.height()/2,size.width(),size.height()/2);
painter.drawLine(size.width()/2,size.width()/2,size.height());
}
return pixmap;
}
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QPixmap pixmap(400,400);
{
QPainter painter(&pixmap);
QBrush brush;
brush.setTexture(createPattern(QSize(25,25),Qt::green,Qt::yellow));
painter.fillRect(pixmap.rect(),brush);
}
QLabel label;
label.setAlignment(Qt::AlignCenter);
label.setPixmap(pixmap);
label.show();
return a.exec();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。