⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paintarea.cpp

📁 Linux窗口程序设计__Qt4精彩实例分析上面的源代码第二部分.以循序渐进的方式进行源代码,包括Qt4下面的图形与图画对话框QMainWindow的源代码.
💻 CPP
字号:
#include "paintarea.h"
#include <math.h>

#define PI 3.1415926535

PaintArea::PaintArea(QWidget *parent)
{
    setPalette(QPalette(Qt::white));
    setAutoFillBackground(true);
    
    setMinimumSize(400,400);
    
    scale = 1;
    angle = 0;
    translate = 0;

}

void PaintArea::setScale(int s)
{
    scale = s/5.0;
    update();
}

void PaintArea::setRotate(int r)
{
    angle = r;
    update();
}

void PaintArea::setTranslate(int t)
{
    translate = t;
    update();
}


void PaintArea::paintEvent(QPaintEvent *)
{ 
    QPainter p(this);   
    
    QPainterPath path;
    path.addRect(-100,-50,200,100);
            
    p.translate(200,200);	//  把窗体的坐标原点移到中心点
    p.rotate(angle);
    p.scale(scale,scale);
    p.translate(translate,translate);

 
    p.setPen(Qt::red);
    p.drawLine(0, 0, 150, 0);
    p.drawLine(148, -2, 150, 0);
    p.drawLine(148, 2, 150, 0);
    p.drawText(150, 2, tr("x"));

    p.drawLine(0, 0, 0, 150);
    p.drawLine(-2, 148, 0, 150);
    p.drawLine(2, 148, 0, 150);
    p.drawText(2, 150, tr("y"));
    p.drawText(-10,-6,"(0,0)");   
    
    p.setPen(Qt::blue);
    p.drawPath(path); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -