郑州科技学院QT课程设计题目图形图像的绘制学生姓名专业班级学号所在系信息工程学院指导教师完成时间年月日目录1. 概述 (4)1.1 背景说明 (4)1.1.1简介 (4)1.1.2 功能和优势 (4)1.2 项目名称 (5)1.3 项目功能 (5)1.4 项目基本框架结构 (5)2. 各模块功能的介绍 (6)2.1 工具栏 (6)2.1.1 file文件 (6)2.1.2 help帮助 (7)2.2 操纵台 (7)2.2.1 style线型选择 (7)2.2.2 width画笔宽度 (8)2.2.3 color画笔颜色 (8)2.2.4 clear清空画板 (9)2.2.5 绘制图形 (9)2.2.6 erasor 橡皮擦 (10)2.2.7坐标定位 (11)2.2.8画布 (11)2.3 布局格式 (11)3. 详细设计 (12)3.1 子菜单功能的实现 (12)3.1.1 New功能的实现 (12)3.1.2 Open 功能的实现 (13)3.1.3 Save 功能的实现 (13)3.1.4 SaveAs 功能的实现 (14)3.1.5 Exit 功能的实现 (15)3.2悬浮窗内各个功能的实现 (15)3.2.1 Style功能的实现 (15)3.2.2 Width 功能的实现 (16)3.2.3 Color 功能的实现 (17)3.2.4 Clear 功能的实现 (18)3.2.5 绘图功能的实现 (19)3.2.6 erasor 功能的实现 (20)3.3鼠标形状设置 (20)3.4 坐标位置显示功能的实现 (21)4. 项目中所用到的QT知识介绍 (21)4.1 信号与槽 (21)4.2 创建主窗口 (23)4.3 自定义窗口部件 (23)4.4 布局管理 (23)4.5 QT中的事件机制 (24)4.6 二维图形的绘制 (25)4.7 项目中建立的类 (25)4.8 类之间的相互关系 (25)结束语 (26)致谢 (26)参考文献 (27)1.概述1.1背景说明1.1.1简介Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。
1.1.2 功能和优势QtCreator主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。
1.使用强大的 C++ 代码编辑器可快速编写代码语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能2.使用浏览工具管理源代码集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换3.为Qt跨平台开发人员的需求而量身定制集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器,对Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目。
1.2 项目名称图形图像的绘制1.3项目功能在本项目中利用QT creator对图像图形进行相应的绘制,在此过程中,操作者可以实现文件的新建、打开、保存、另存为、退出以及相应的帮助功能,在主要的操作窗口中可以选择相应的样式风格,以及用户所要绘制的图形图像,用户可以对自己所绘制的图形做些相应的修改,例如:修改图形的宽度、颜色等,如果用户对自己所绘制的图形不满意的情况下,还可以选择不同大小的橡皮擦,对需要进行修改的图形进行修改。
1.4项目基本框架结构运行结果如下图:图1.1图1.2图1.3 2.各模块功能的介绍2.1工具栏2.1.1 file文件文件的下拉菜单中包含1.new(新建)newAct=new QAction(QIcon(":/new/prefix1/image/new.PNG"),tr("&New"),thi s);2.open(打开一个图片)openAct=new QAction(QIcon(":/images/open.png"),tr("&Open..."),this);3.save(保存)在此菜单中用户可以根据提示将所打开的文件保存到自己想要保存的位置,方便以后用户的查找。
saveAct=new QAction(QIcon(":/new/prefix1/image/save.PNG"),tr("&Save"), this);4.saveas(另存为)和save的功能类似,只是用户将打开的文件保存的时候更改一下路径。
saveAsAct=new QAction(tr("Save&As..."),this);5.exit(退出)。
exitAct=new QAction(tr("E&xit"),this);2.1.2 help帮助不懂本工具操作的用户可以查看qt creator的相应信息,使用户对本工具的了解更加深入。
2.2操纵台2.2.1 style线型选择通过一个组合框对以下线性进行选择:1.SolidLine实线2.DashLine虚线3.DotLine点线4.DashDotLine一个虚线一个点组成的线5.DashDotDotLine一个虚线两个点组成的线可以在源文件controlbox中进行相应的操作,具体代码如下:styleLabel = new QLabel("style");styleComboBox = new QComboBox;styleComboBox->addItem(tr("SolidLine"),static_cast<int>(Qt::SolidLine ));styleComboBox->addItem("DashLine",static_cast<int>(Qt::DashLine)); styleComboBox->addItem("DotLine",static_cast<int>(Qt::DotLine));styleComboBox->addItem("DashDotLine",static_cast<int>(Qt::DashDotLine ));styleComboBox->addItem("DashDotDotLine",static_cast<int>(Qt::DashDotD otLine));2.2.2 width画笔宽度用户可通过一个组件布局选择自己所需要的画笔宽度,在此项目中画笔宽度默认值为1,具体实现方式如下:widthLabel = new QLabel("Width");widthSpinBox = new QSpinBox;widthSpinBox->setValue(1);2.2.3 color画笔颜色用户可以手动的调整画笔颜色,此项目画笔的颜色默认为黑色,具体实现功能的代码如下:colorLabel = new QLabel("Color");colorBtn = new QToolButton;QPixmap pixmap(20,20);ixmap.fill(Qt::black);colorBtn->setIcon(QIcon(pixmap));2.2.4 clear清空画板点击相应的按钮可清除用户在画板上所做的操作,恢复成最原始的状态,具体实现如以下代码:clearBtn = new QToolButton();clearBtn->setText("clear");2.2.5 绘制图形用户可以绘制的图形有:1.rectangle矩形rectangle=newQPushButton(QIcon(":/new/prefix1/image/qpainter-rectangle.png"),tr("r ectangle"),0);2.roundrectangle圆角矩形roundrect=newQPushButton(QIcon(":/new/prefix1/image/qpainter-roundrect.png"),tr("r oundrect"),0);3.ellipse椭圆(当按着Shift键绘制时为圆形)ellipse=newQPushButton(QIcon(":/new/prefix1/image/qpainter-ellipse.png"),tr("ell ipse"),0);4.chord弦QPushButton(QIcon(":/new/prefix1/image/qpainter-chord.png"),tr("chord "),0);5.line线line=newQPushButton(QIcon(":/new/prefix1/image/Line(2).png"),tr("line"),0);6.pen画笔pen=newQPushButton(QIcon(":/new/prefix1/image/cursor_pen.png"),tr("pen "),0);2.2.6 erasor 橡皮擦用户在不满意的情况下可以使用橡皮擦工具,可以将自己不满意的地方进行擦除,然后就可以按照自己想绘制的图形进行相应的修改。
erasor=newQPushButton(QIcon(":/new/prefix1/image/cursor_erasor.png"),tr("eraser "),0);用户可以在橡皮按钮后面的一个组合框中选择自己想要的橡皮的大小,具体可以选择3mm、6mm、9mm,这样可以使用户更加方便的对自己绘制的图形图像进行相应的修改。