




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观qt画图实验报告篇一:QT综合作业实验报告一、 实验目的1, 了解并掌握Qt集成开发环境下使用Qt Designer开发图形界面程序的流程和相关操作;2, 了解并掌握Qt的信号槽和信号传递机制,并通过具体应用加深理解;3, 了解并掌握使Qt应用程序支持中文或国际化的方法,并在本次实验中使用; 4, 了解并掌握QPainter的translate、shear等库函数的使用方法和Widget类的使用方法,并通过本次实验加深理解;5, 掌握在Qt Designer界面上为菜单项添加工具栏按钮、创建相应槽函数的方法; 6, 了解并掌握使用双缓冲机制绘图的方法。二、 实验环境操作系统:Windows 7应用软件:Qt Creator开发平台:qt-sdk-win-opensource-XX.04三、 程序流程图:四、 核心源代码mainwindow.cpp的内容(实现菜单项的功能和绘图功能的调用)#include mainwindow.h#include ui_mainwindow.h#include donewdialog.h#include#include#include#include aboutdialog.hMainWindow:MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui:MainWindow)ui-setupUi(this);setWindowTitle(tr(Qt绘图板);setFixedSize(700,500); /主窗口大小设为700*500area = new PaintArea;scrollArea = new QScrollArea;scrollArea-setBackgroundRole(QPalette:Dark); /scrollArea对象的背景色设为Dark scrollArea-setWidget(area); /将画布添加到scrollArea中scrollArea-widget()-setMinimumSize(800,600); /scrollArea初始化大小设为800*600ui-dockWidget-hide();setCentralWidget(scrollArea); /将scrollArea加入到主窗口的中心区isSaved = false;curFile = tr(未命名.png);creatColorComboBox(ui-penColorComboBox); /画笔颜色组合框creatColorComboBox(ui-brushColorComboBox); /填充颜色组合框MainWindow:MainWindow()delete ui;void MainWindow:changeEvent(QEvent *e)QMainWindow:changeEvent(e);switch (e-type() case QEvent:LanguageChange:ui-retranslateUi(this);break;default:break;void MainWindow:doOpen()if (maybeSave()QString fileName = QFileDialog:getOpenFileName(this,tr(打开文件), QDir:currentPath();if (!fileName.isEmpty()area-openImage(fileName);scrollArea-widget()-resize(area-getImageSize();/获得图片的大小,然后更改scrollArea的大小isSaved = true;curFile = fileName;void MainWindow:doNew()if(maybeSave()DoNewDialog dlg;if(dlg.exec() = QDialog:Accepted)int width = dlg.getWidth();int height = dlg.getHeight();area-setImageSize(width,height);scrollArea-widget()-resize(width,height);area-setImageColor(dlg.getBackColor();isSaved = false;bool MainWindow:maybeSave()if(area-isModified()QMessageBox:StandardButton box;box = QMessageBox:warning(this,tr(保存文件),tr(图片已经改变,是否保存?), QMessageBox:Yes|QMessageBox:No|QMessageBox:Cancel);if(box = QMessageBox:Yes)return doFileSave();else if(box = QMessageBox:Cancel)return false;return true;bool MainWindow:doFileSave()if(isSaved)return saveFile(curFile);else return doFileSaveAs();bool MainWindow:saveFile(QString fileName)if(area-saveImage(fileName,png)篇二:C+实验报告-QT PaintPad 面向对象程序设计与C+实验报告 报告创建时间:篇三:QT实验五QT绘图基础实验QT绘图基础实验(一)编程绘图实现显示时钟窗口使用定时器和QPAINTER类绘制时钟,包括使用刷子、画笔、定义坐标旋转、刻度定义、画线等函数,完成时钟实时显示。定义一个GUI工程,包含下列文件:源文件analogclock.h代码#includeclass AnalogClock : public QWidgetQ_OBJECTpublic:AnalogClock(QWidget *parent = 0);protected:void paintEvent(QPaintEvent *event); 源文件main.cpp代码 #include#include analogclock.hint main(int argc, char *argv)QApplication a(argc, argv);AnalogClock clock;clock.show();return a.exec(); 源文件AnalogClock.cpp代码 #include#include analogclock.hAnalogClock:AnalogClock(QWidget *parent): QWidget(parent)QTimer *timer = new QTimer(this);connect(timer, SIGNAL(timeout(), this, SLOT(update();timer-start(1000);setWindowTitle(tr(Analog Clock);resize(200, 200);void AnalogClock:paintEvent(QPaintEvent *)static const QPoint hourHand3 = QPoint(7, 8),QPoint(-7, 8),QPoint(0, -40);static const QPoint minuteHand3 = QPoint(7, 8),QPoint(-7, 8),QPoint(0, -70);QColor hourColor(127, 0, 127);QColor minuteColor(0, 127, 127);int side = qMin(width(), height();QTime time = QTime:currentTime();QPainter painter(this);painter.setRenderHint(QPainter:Antialiasing);painter.translate(width() / 2, height() / 2);painter.scale(side / 200.0, side / 200.0);painter.setPen(Qt:NoPen);painter.setBrush(hourColor);painter.save();painter.rotate(30.0 * (time.hour() + time.minute() / 60.0); painter.drawConvexPolygon(hourHand, 3);painter.restore();painter.setPen(hourColor);for (int i = 0; i painter.drawLine(88, 0, 96, 0);painter.rotate(30.0);painter.setPen(Qt:NoPen);painter.setBrush(minuteColor);painter.save();painter.rotate(6.0 * (time.minute() + time.second() / 60.0); painter.drawConvexPolygon(minuteHand, 3);painter.restore();painter.setPen(minuteColor);painter.save();for (int j = 0; j if (j % 5) != 0)painter.drawLine(92, 0, 96, 0);painter.rotate(6.0);painter.restore();运行后的效果如下:思考:如何添加代码实现秒指针的显示?painter.setPen(QColor(0,55,223);painter.rotate(6.0 * time.second();painter.drawLine(0,0,0,-90); (二)画棋程序 使用画图事件处理鼠标绘制点击过程,使用了画笔、刷子、画线、画圆及坐标计算等方法,完成下棋程序。定义一个GUI工程,包含下列文件:(基类是QWidget类)源文件widget.cpp代码#include widget.h#include ui_widget.h#includeWidget:Widget(QWidget *parent) :QWidget(parent),ui(new Ui:Widget)ui-setupUi(this);struct CHESSstruct CHESS *next;int x; /横坐标int y; /纵坐标int color; /颜色 *cur= (CHESS *)malloc(sizeof(CHESS),*p,*q=cur; int count=0;Widget:Widget()delete ui;void Widget:paintEvent(QPaintEvent *event)QPainter painter(this);int c;painter.setBrush(QBrush(Qt:yellow,Qt:SolidPattern);/将笔刷设置成黄颜色painter.drawRect(0, 0, 256, 256);/调用矩形函数画背景painter.setPen(QPen(Qt:black,1);/设置画笔为黑色,宽度是1 for(int i = 1; i painter.drawLine(16,16* (i), 240, 16 * (i);painter.drawLine(16* (i), 16, 16 * (i), 240);painter.drawEllipse(16*4-3, 16*4-3, 6, 6);/利用画圆函数带入相应参数painter.drawEllipse(240-16*3-3, 240-16*3-3, 6, 6);painter.drawEllipse(16*4-3, 240-16*3-3, 6, 6);painter.drawEllipse(240-16*3-3, 16*4-3, 6, 6);painter.drawEllipse(16*8-3, 16*8-3, 6, 6);p=cur-next;c=count;while (count!=0)if(p-color=0)painter.setBrush(QBrush(Qt:black,Qt:SolidPattern);/设置黑色的笔刷painter.setPen(Qt:black);/设置黑色的画笔elsepainter.setBrush(QBrush(Qt:white,Qt:SolidPattern);/设置白色的笔刷painter.setPen(Qt:white);/设置白色的画笔painter.drawEllipse(16 *p-x- 3, 16 *p-y- 3, 6, 6);/带入棋子的大小参数,和坐标点p=p-next;count-;count=c;void Widget:mousePressEvent(QMouseEvent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年荔枝浓缩汁项目可行性研究报告
- 2025年苯氧布洛芬钙片项目可行性研究报告
- 2025年花边床垫项目可行性研究报告
- 2025-2030章鱼行业竞争格局分析及投资前景与战略规划研究报告
- 2025-2030稀土化合物行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030短裤行业市场深度调研及发展趋势与投资战略研究报告
- 2025-2030白铜首饰市场行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030男式T恤行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030电气控制屏市场市场现状供需分析及投资评估规划分析研究报告
- 2025-2030现代农业行业市场现状供需分析及投资评估规划分析研究报告
- 企业所得税汇算清缴申报表电子表格版(带公式-自动计算)
- 2024年中国BIM行业市场动态分析、发展方向及投资前景分析报告
- (正式版)JBT 2930-2024 低压电器产品型号编制方法
- 灭火器检查的流程与步骤详解
- 2023年漳州市医院考试招聘考试真题及答案
- 可伸缩便携式刺梨采摘器的设计
- 厂内检验员基础知识培训
- 马工程《思想政治教育学原理 第二版》课后习题详解
- 部编版语文三年级下册第八单元 有趣的故事 大单元整体作业设计
- 员工雇主责任险操作管理规定
- 乡村医生药品培训课件
评论
0/150
提交评论