深圳住房和建设局网站轮候大厅,wordpress打赏图片显示不了,完整php网站开发,怎样创建网站域名平台或许有人会等你到天黑#xff0c;但是你不该在天黑后再找他#xff08;她#xff09;。 1.绘图事件
在ui文件中添加一个按钮#xff0c;同时在资源文件中添加一个名字为1.jpg的图片。
widget.cpp
#include widget.h
#include ui_widget.h
#incl…或许有人会等你到天黑但是你不该在天黑后再找他她。 1.绘图事件
在ui文件中添加一个按钮同时在资源文件中添加一个名字为1.jpg的图片。
widget.cpp
#include widget.h
#include ui_widget.h
#include QPainter
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);connect(ui-pushButton,QPushButton::clicked,[](){update();//如果手动调用绘图事件用update更新以前使用repaint});//将按钮点击与更新图片关联每次点击按钮图片向x方向移动20
}void Widget::paintEvent(QPaintEvent *)
{// QPainter painter(this);//1.创建画家对象this指定画图设备// // painter.setBrush(QBrush(Qt::Dense1Pattern));//设置封闭图形填充样式// painter.setBrush(QBrush(QColor(250,249,222),Qt::SolidPattern));//设置填充格式和颜色// QPen pen;//创建画笔对象// pen.setColor(QColor(165,42,42));//设置画笔颜色// pen.setStyle(Qt::DotLine);//设置画笔风格// pen.setWidth(2);//设置画笔颜色// painter.setPen(pen);//让画家对象使用画笔对象// painter.drawLine(QPoint(0,0) , QPoint(0,100));//画线// painter.drawChord(QRect(500,200,800,600),480,1920);//画弦// painter.drawRect(10,20,30,80);//画矩形// painter.drawText(1000,500,暗红色是红色降低纯度形成的一种色彩纯度较低决定了这种色彩本来红色的一些特性的弱化。);//画文本// painter.drawEllipse(QPoint(100,70),40,40);//画圆椭圆// QPainter painter(this);//2.创建画家对象this指定画图设备// painter.drawEllipse(QPoint(100,100),50,50);//画圆// painter.setRenderHint(QPainter::Antialiasing,true);//设置抗锯齿能力,提高精细度绘图效率降低// painter.drawEllipse(QPoint(200,200),50,50);//画圆// painter.drawRect(300,300,50,50);//正方形// painter.translate(300,0);//移动画家对象// painter.save();//记录画家对象的状态包括位置// painter.drawRect(300,300,50,50);// painter.translate(300,0);// painter.restore();//将画家状态还原到上一个保存点位置// painter.drawRect(300,300,50,50);//该正方形与上一个正方形重叠QPainter painter(this);//3.创建画家对象this指定画图设备posX20;//每次更新posX加20可以放到connect函数的lambda中if(posXthis-width())//如果图片的起点x坐标大于窗口宽度将posx置零{posX0;}painter.drawPixmap(posX,100,320,200,QPixmap(:/1.jpg));//画图片图片起点坐标为posX100宽320高200}Widget::~Widget()
{delete ui;
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetQT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void paintEvent(QPaintEvent *);int posX0;
private:Ui::Widget *ui;
};
#endif // WIDGET_H
2.绘图设备
绘图设备是指继承 QPainterDevic,的子类。Qt一共提供了四个这样的类分别是 QPixmap、 QBitman、QImage和 QPicture。其中
QPixmap,专门为图像在屏幕上的显示做了优化。Bitmap是 Pixmp,的一个子类它的色深限定为1可以使用 QPixmp的QBitmap()函数来确定这个 QPixmp是不是一个 QBitmap。QImege专门为图像的像素级访问做了优化。QPieture则可以记录和重现 QPainter的各条命令。
widget.cpp
#include widget.h
#include ui_widget.h
#include QPainter
#include QPicture
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);// //QPixmap绘图设备专门为平台做了显示的优化// QPixmap pix(300,300);//创建一块300×300的QPixmap对象// pix.fill(Qt::white);//将对象颜色填充为白色// QPainter painter(pix);//创建画家对象并将设置pix设置为绘图板// painter.setPen(QPen(Qt::cyan));//设置画笔颜色// painter.drawEllipse(QPoint(150,150),50,50);//以pic中心为原点画圆// pix.save(E:\\pix.png);//保存到E盘// //QImage绘图设备可以对像素进行访问// QImage ima(300,300,QImage::Format_ARGB32);//创建一块300×300的对象// ima.fill(Qt::white);// QPainter painter(ima);//创建画家对象并将设置pix设置为绘图板// painter.setPen(QPen(Qt::cyan));//设置画笔颜色// painter.drawEllipse(QPoint(150,150),50,50);//以pic中心为原点画圆// ima.save(E:\\pix.jpg);//保存到E盘//QPicture绘图设备 可以记录和重现绘图指令QPicture pic;QPainter painter;painter.begin(pic);//开始往pic上画painter.setPen(QPen(QColor(0,255,0)));painter.drawEllipse(QPoint(150,150),100,100);painter.end();//结束绘图pic.save(E:\\pic.zt);//保存到E盘
}
void Widget::paintEvent(QPaintEvent *event)
{
// QPainter painter(this);
// QImage ima;//利用QImage对像素进行修改
// ima.load(:/1.jpg);//加载图片
// ima.setDevicePixelRatio(5);//告知QPainters对象在被绘制的目标上用几个物理像素来绘制1个逻辑像素。// for(int i50;i200;i)
// {
// for(int j50;j200;j)
// {
// QRgb value qRgb(0,0,255);
// ima.setPixel(i,j,value);
// }//修改像素点// }
// painter.drawImage(0,0,ima);
//QPainter painter(this);//重现QPicture绘图指令QPicture pic;pic.load(E:\\pic.zt);painter.drawPicture(0,0,pic);
}Widget::~Widget()
{delete ui;
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void paintEvent(QPaintEvent *event);//绘图事件
private:Ui::Widget *ui;
};
#endif // WIDGET_H