📄 画图程序.cpp
字号:
//画图程序,qpoint,qpainter的使用.用points[]记录鼠标轨迹点color[]随机生//成MAXCOLORS种颜色,用来画线时随机选取.
#include <stdlib.h>
#include <qwidget.h>
#include <qapplication.h>
#include <qpainter.h>
#include <qpoint.h>
#include <qcolor.h>
const int MAXPOINTS = 2000;
const int MAXCOLORS = 40;
class ConnectWidget:public QWidget
{
public:
ConnectWidget(QWidget *parent = 0, const char *name= 0); ~ConnectWidget();
protected:
void paintEvent(QPaintEvent *);
void mousePressEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
private:
QPoint *points;
QColor *colors;
int count;
bool down;
};
ConnectWidget::ConnectWidget(QWidget *parent, const char *name)
:QWidget(parent,name)
{
setBackgroundColor(white);
count = 0;
down = FALSE;
points = new QPoint[MAXPOINTS];
colors = new QColor[MAXCOLORS];
for (int i = 0 ; i
colors[i] = QColor(rand()&255, rand()&255, rand()&255);
};
ConnectWidget::~ConnectWidget()
{
delete[] points;
delete[] colors;
};
void ConnectWidget::paintEvent(QPaintEvent* )
{
QPainter paint(this);
for (int i = 0; i1; i++){
for (int j= i+1; j
paint.setPen(colors[rand()%MAXCOLORS]); paint.drawLine(points[i], points[j]);
}
}
};
void ConnectWidget::mousePressEvent(QMouseEvent *)
{
down = TRUE;
count = 0 ;
erase();
};
void ConnectWidget::mouseReleaseEvent(QMouseEvent *)
{
down = FALSE;
update();
};
void ConnectWidget::mouseMoveEvent(QMouseEvent *e)
{
if (down&&count
QPainter paint(this);
points[count++] = e->pos();
paint.drawPoint(e->pos());
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ConnectWidget connect;
a.setMainWidget(&connect);
connect.show();
return a.exec();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -