C++ Qt4可视化程序设计作业.docx
文本预览下载声明
《C++ Qt4可视化程序设计》期末结课作业设计项目:简易画图板 学号: 学院: 姓名: 【软件需求说明】与一般画图软件功能大体相似,如具有绘画涂鸦,添加直线或矩形等常用图形,可以插入图片,在图片上绘画,可以让其实现缩放,旋转,拉伸、删除、保存、撤销等功能。【软件功能设计与实现】一、设计界面1、设计菜单 A、所需创建菜单如下图所示: B、在动作编辑器中对各个菜单的Action进行编辑其文本,对象名,工具提示,快捷键,图标等内容,编辑完成后的Action如下图所示:C、把Action拖动放到工具栏上,如下图所示:2、添加绘图工具栏 A、在左边的部件栏中找到Dock Widget,并将其拖入到设计区,如下图: B、向其中拖入相关部件,效果图如上右图所示:三、添加画板 A、主要程序代码:#ifndef PAINTAREA_H #define PAINTAREA_H #include QWidget #include QMouseEvent #include QPoint class PaintArea : public QWidget { public: PaintArea(); protected: //下面三个函数是对事件的相应,因为PaintArea继承自QWidget类, //所以有次三个函数,分别对不同事件的响应。 void paintEvent(QPaintEvent *); //重绘事件响应 void mousePressEvent(QMouseEvent *); //鼠标按下事件响应 void mouseMoveEvent(QMouseEvent *); //鼠标移动事件响应 void mouseReleaseEvent(QMouseEvent *); //鼠标释放事件响应 void paint(QImage theImage); //自定义函数,进行绘制,该函数只是为了模块化编程定义的 private: QImage image; //QImage类对象,用于在其上绘图,也就是画布 QRgb backColor; //QRgb颜色对象,存储image的背景色 QPoint lastPoint,endPoint; //定义两个坐标对象存放鼠标指针的前后两个坐标 }; #endif // PAINTAREA_H #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QMainWindow #include paintarea.h #include QScrollArea namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void changeEvent(QEvent *e); private: Ui::MainWindow *ui; PaintArea *area; QScrollArea *scrollArea; }; #endif // MAINWINDOW_H #include mainwindow.h #include ui_mainwindow.h MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow) { ui-setupUi(this); resize(700,500); //主窗口大小设为700*500 area = new PaintArea; scrollArea = new QScrollArea; scrollArea-setBackgroundRole(QPalette::Dark); //scrollArea对象的背景色设为Dark scrollArea-setWidget(area); //将画布添加到scrollArea中 scrollArea-widget()-setMinimumSize(800,600); //scrollArea初始化大小设为800*600 setCentralWidget(scrollArea); //将scrollArea加入到主窗口的中心区 } MainWindow::~MainWindow() { delete ui; } void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e-type()) { case QEvent::
显示全部