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

个人网站建设服务北京网站建设制作开发

个人网站建设服务,北京网站建设制作开发,视觉滚动网站,网站 备案 异地6.1 QPaintEvent 绘图事件 QPaintEvent 是 Qt 框架中一个重要的事件类,专门用于处理绘图事件。当 Qt 视图组件需要重绘自己的一部分时,就会产生 QPaintEvent 事件。这通常发生在以下几种情况: 1. 窗口第一次显示时 :当窗口…
6.1 QPaintEvent 绘图事件
QPaintEvent Qt 框架中一个重要的事件类,专门用于处理绘图事件。当 Qt 视图组件需要重绘自己的一部分时,就会产生 QPaintEvent 事件。这通常发生在以下几种情况:
1. 窗口第一次显示时 :当窗口或控件第一次出现在屏幕上时,系统会生成一个 QPaintEvent 事件,通知窗口进行自身的绘制。
2. 窗口大小改变时 :当用户改变窗口的大小时,窗口的内容通常需要重新绘制以适应新的尺寸。
3. 窗口部分被遮挡后又重新显示时 :如果窗口被其他窗口遮挡,然后又重新露出来,被遮挡的部分通 常需要重新绘制。
4. 手动请求重绘 :通过调用 QWidget update() repaint() 方法,可以手动触发重绘事件。
Qt 应用程序中,通常通过重写 QWidget paintEvent(QPaintEvent *) 方法来处理绘制逻辑。
例如:
class MyWidget : public QWidget {
protected :
        void paintEvent ( QPaintEvent * event ) override {
                QPainter painter ( this );
                // 绘制逻辑
        }
};
paintEvent 方法中,您可以创建一个 QPainter 对象并使用它来执行绘制操作。 QPainter 可以绘制各种基本图形,如线条、矩形、椭圆等,还可以绘制文本和图像。重写 paintEvent 是在 Qt 中进行自定义绘制的标准做法。
6.2 QPainter 画家
6.2.1 概述
QPainter Qt 库中用于在屏幕上进行绘画的类。它提供了各种绘制功能,比如画线、画图形、画文本等。
以下是一些基本的用法示例:
1. 初始化 QPainter :首先,您需要一个 QPaintDevice ,比如一个 QWidget QPixmap ,然后使用它来初始化 QPainter 对象。
QPainter painter ( this ); // 假设在 QWidget 的子类中
设置画笔和画刷 :您可以设置画笔(用于描边)和画刷(用于填充)的颜色、样式等。
painter . setPen ( Qt::blue ); // 设置画笔颜色为蓝色
painter . setBrush ( Qt::yellow ); // 设置画刷颜色为黄色
绘制图形 :使用 QPainter 的方法来绘制线条、矩形、圆形、文本等。
painter . drawLine ( 10 , 10 , 100 , 100 ); // 画线
painter . drawRect ( 10 , 10 , 100 , 100 ); // 画矩形
painter . drawText ( 10 , 10 , "Hello, Qt!" ); // 画文本
结束绘制:完成绘制后, QPainter 对象会在其析构函数中自动结束绘制。
请注意, QPainter 的使用依赖于 Qt 的事件循环,因此通常在 QWidget paintEvent 或者类似的事件处理函数中使用它。如果您在 Qt 应用程序中使用 QPainter ,请确保您遵循 Qt 的事件驱动机制。
以下还有画线,画矩形,画圆,画弧线,画扇形的代码案例:
#include "widget.h"
#include "ui_widget.h"
 
#include <QPainter>
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}
 
Widget::~Widget()
{
    delete ui;
}
 
void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    //设置画笔颜色,大小
//    QPen pen(Qt::lightGray,7);
//    painter.setPen(pen);
    painter.setPen(Qt::lightGray);
    //设置字体大小
    painter.setFont(QFont("Arial", 30));
    //写字
    painter.drawText(rect(), Qt::AlignCenter, "Qt");
 
    //画线
//    void drawLine(const QLine &line)
    QLine line(10,100,200,10);
    painter.drawLine(line);
//    void drawLine(int x1, int y1, int x2, int y2)
    painter.drawLine(100,400,200,10);
//    void drawLine(const QPoint &p1, const QPoint &p2)
    painter.drawLine(QPoint(100,400),QPoint(10,100));
 
    //画矩形
//    void  drawRect(int x, int y, int width, int height)
    painter.drawRect(100,100,20,100);
//    void drawRect(const QRect &rectangle)
    QRect rect(100,100,40,200);
    painter.drawRect(rect);
 
    //画圆
//    void drawEllipse(const QRect &rectangle)
    QRect ellipse(200,200,50,100);
    painter.drawEllipse(ellipse);
//    void drawEllipse(int x, int y, int width, int height)
    painter.drawEllipse(250,200,50,100);
//    void drawEllipse(const QPoint &center, int rx, int ry)
    painter.drawEllipse(QPoint(250,200),100,200);
 
    //画弧线
//    void drawArc(const QRect &rectangle, int startAngle, int spanAngle)
    QRect arc(200,100,100,50);
    painter.drawArc(arc,30*16,120*16);
    painter.drawArc(arc,-30*16,-120*16);
//    void drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
    painter.drawArc(200,120,100,50,30*16,120*16);
    painter.drawArc(200,120,100,50,-30*16,-120*16);
 
    //画扇形
//    void drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
    painter.drawPie(200,220,100,50,30*16,120*16);
//    void drawPie(const QRect &rectangle, int startAngle, int spanAngle)
    QRect pie(200,250,100,50);
    painter.drawPie(pie,30*16,120*16);
 
}
 
 
http://www.hengruixuexiao.com/news/8299.html

相关文章:

  • 技术支持 东莞网站建设洋酒回收seo网站优化专员
  • 门户网站开发文档seo排名优化点击软件有哪些
  • 网站备案文件营销网站建设方案
  • 南昌网站建设机构厦门seo公司
  • 做淘客要有好的网站常熟网站建设
  • 企业网站栏目规划的重要性热门搜索
  • 犀牛云做网站做网站需要多钱如何制作网站免费建站
  • 做建设网站的活的兼职做网站设计的公司
  • 个人网站开发的意义网络营销的目标
  • 宣讲家网站两学一做关键词优化系统
  • 济南网站建设内容设计加入网络营销公司
  • 网站商城微信支付接口百度资源搜索引擎
  • 个人网站名字郑州做网站推广
  • 南沙网站建设优化哈尔滨百度网络推广
  • 做网页和做网站微博热搜榜排名今日
  • 网站建设硬件需求整站优化推广
  • 广东网站设计工具怎样在百度上发布免费广告
  • 只有一个域名怎么建设网站网推什么意思
  • 馆陶网站建设域名查询官网
  • 怎么不花钱建立网站seo快速排名软件平台
  • 岳阳网站建设与设计南昌seo招聘信息
  • 做网站用到的单词品牌公关
  • 网站产品详情页怎么做的此网站三天换一次域名
  • 邢台专业做网站哪家好东莞网络优化服务商
  • 苏州小程序定制开发公司优化疫情二十条措施
  • qq做兼职给网站给你seo外链推广
  • 模板网建站站长之家网站模板
  • 网站运营总结一个完整的策划案范文
  • 深圳家居网站建设公司网站生成app
  • 大连网站制作机构电子商务网页制作