如果用qt建造一个直角坐标系然后再坐标系中作图

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 19:54:11

如果用qt建造一个直角坐标系然后再坐标系中作图
如果用qt建造一个直角坐标系然后再坐标系中作图

如果用qt建造一个直角坐标系然后再坐标系中作图
新建工程 基类是QWidget
zuobiaozhou.h
#ifndef ZUOBIAOZHOU_H
#define ZUOBIAOZHOU_H
#include
class zuobiaozhou :public QWidget
{
Q_OBJECT
public:
zuobiaozhou(QWidget *parent = 0);
zuobiaozhou();
protected:
void paintEvent(QPaintEvent *);
};
#endif // ZUOBIAOZHOU_H
main.cpp
#include
#include "zuobiaozhou.h"
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
zuobiaozhou w;
w.showMaximized(); //窗口默认最大化
return a.exec();
}
zuobiaozhou.cpp
#include "zuobiaozhou.h"
zuobiaozhou::zuobiaozhou(QWidget *parent)
:QWidget(parent)
{
setWindowTitle(tr("zuobiaozhou")); //设置标题栏标题
resize(400,300); //设置窗口初始大小
}
zuobiaozhou::zuobiaozhou()
{
}
void zuobiaozhou::paintEvent(QPaintEvent *)
{
int side = qMin(width(),height()); //创建窗口宽高参数
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true); //开启抗锯齿
painter.translate(width() / 2,height() / 2); //坐标系统平移变换,把原点平移到窗口中心
painter.scale(side / 300.0,side / 300.0); //坐标系统比例变换,使绘制的图形随窗口的放大而放大
painter.scale(1,-1); //Y轴向上翻转,翻转成正常平面直角坐标系
painter.setPen(QPen(Qt::black,height() / 600));
painter.drawLine(-2000,0,2000,0);
painter.drawLine(0,1500,0,-1500);
}

QT 中有QPaintEvent事件,这个是实现画图的,你可以在函数中画出直角坐标系,最后作图哦重载QPaintEvent,然后去画坐标吗,我想做个坐标系然后在坐标系中可以画图,请问qt中有识别现在鼠标指针的坐标函数吗如何使用呢有,鼠标移动,鼠标点击都有对应的函数,这个baidu就能找到,就不举例了...

全部展开

QT 中有QPaintEvent事件,这个是实现画图的,你可以在函数中画出直角坐标系,最后作图

收起