当前位置: 首页 > 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.khdw.cn/news/24132.html

相关文章:

  • 企业做网站用什么建站系统企业网站建设方案
  • 技术支持 东莞网站建设洋酒回收合肥网站建设
  • 做水果苹果大的网站农村电商平台
  • 武汉做网站找哪家好西安专业网络推广公司
  • 网络规划与设计的必要性seo投放是什么意思
  • iis 提示网站到期优化设计三年级上册答案语文
  • 淄博 建设网站网页制作图片
  • 施工企业三金压降指的是哪三金优化关键词哪家好
  • 做网站公司信科建站免费网站首页不收录
  • 天津公司网站怎样制作宁波百度seo排名优化
  • 网站开发技术方案与设施百度指数的使用
  • 网站开发执行文档昆山网站建设
  • 互联网网站制作公司使用最佳搜索引擎优化工具
  • iis网站突然无法访问安卓优化大师下载
  • 网站规划与网站建设重庆网站seo建设哪家好
  • 个人性质网站名称网络营销品牌案例
  • 上海网站开发公司外包培训计划方案模板
  • wordpress丢失连接网站排名优化系统
  • 网站的域名做邮箱吗甘肃seo网站
  • 网站解析后显示建设中网络营销做的好的企业
  • 淄博网站制作哪家公司好东莞关键词排名seo
  • 网站建设和推广方案黑科技引流软件是真的吗
  • 挂甲寺网站建设营销推广方案案例
  • 做网站 中企动力网页设计参考网站
  • 西宁网站建设 哪家好成都网络运营推广
  • 学网站建设app互联网营销培训班
  • 做网站申请完域名后做什么链接交易网
  • 做网站学哪种代码好p2p万能搜索种子
  • wordpress影视站网络营销的重要性与意义
  • 中原郑州网站建设网游推广