当前位置: 首页 > news >正文

石家庄网站设计制作服务湖南网站建设加盟代理

石家庄网站设计制作服务,湖南网站建设加盟代理,网页设计公司的市场评估,免费申请三级域名网站或许有人会等你到天黑,但是你不该在天黑后再找他(她)。 1.绘图事件 在ui文件中添加一个按钮,同时在资源文件中添加一个名字为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指定画图设备posX+=20;//每次更新,posX加20,可以放到connect函数的lambda中if(posX>this->width())//如果图片的起点x坐标大于窗口宽度,将posx置零{posX=0;}painter.drawPixmap(posX,100,320,200,QPixmap(":/1.jpg"));//画图片,图片起点坐标为(posX,100),宽320,高200}Widget::~Widget()
{delete ui;
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void paintEvent(QPaintEvent *);int posX=0;
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 i=50;i<200;i++)
//     {
//         for(int j=50;j<200;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 <QWidget>QT_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
http://www.tj-hxxt.cn/news/74536.html

相关文章:

  • 公司后台网站怎么做网络推广引流有哪些渠道
  • 龙岗营销网站建设好123上网主页
  • 营销型网站开发定制世界网站排名查询
  • 最权威的公文写作网站建网站找哪个公司
  • 提供网站建设设计外包百度应用平台
  • 网站建设一般分几年摊销企业网站制作哪家好
  • wordpress 存储视频seo优化关键词是什么意思
  • 上海网站建设赢昶百度一下官网搜索引擎
  • 郑州一网网站建设什么是全网营销推广
  • 杭州哪家公司做网站比较好企业培训课程清单
  • 哪家网站游戏做的比较好网络营销推广及优化方案
  • html5 网站开发 适配网站关键字优化价格
  • 线上推广产品seo网站优化服务商
  • 政府网站建设背景说明国内seo工具
  • 服务器网站跳转怎么做的长沙做引流推广的公司
  • 衡水做网站设计2023上海又出现疫情了
  • 做雷达干扰的网站巩义网站优化公司
  • 网站后台操作谷歌推广开户
  • 阿里做网站怎么做谷歌海外推广怎么做
  • 微网站建设找哪家公司中国网站访问量排行
  • 公司网站做优化少钱培训师资格证怎么考
  • frontpage如何做网站网站推广服务报价表
  • asp access 手机站 用于做微网站百度app下载官方免费下载最新版
  • ssm框架做网站的优势seo站长工具
  • 西安 做网站网络营销推广实战宝典
  • 北京适合穷人逛的商场惠州seo网站推广
  • wordpress themes 目录百度关键词优化师
  • 十大网站免费东莞网站建设排名
  • 怎样让网站做301处理今日新闻
  • 集安网站制作精准推广的渠道有哪些