QT综合作业实验报告

上传人:沈*** 文档编号:129304180 上传时间:2022-08-02 格式:DOC 页数:30 大小:746KB
返回 下载 相关 举报
QT综合作业实验报告_第1页
第1页 / 共30页
QT综合作业实验报告_第2页
第2页 / 共30页
QT综合作业实验报告_第3页
第3页 / 共30页
点击查看更多>>
资源描述
嵌入式实验报告部分基于QT实现一个简易画图板姓名:冯建建班级:软件71学号:07161007学院:软件学院日期:2010-10-25实验目的1,了解并掌握Qt集成开发环境下使用QtDesigner开发图形界面程序的流程和相关操作;2,了解并掌握Qt的信号槽和信号传递机制,并通过具体应用加深理解;3,了解并掌握使Qt应用程序支持中文或国际化的方法,并在本次实验中使用;4,了解并掌握QPainter的translate、shear等库函数的使用方法和Widget类的使用方法,并通过本次实验加深理解;5,掌握在QtDesigner界面上为菜单项添加工具栏按钮、创建相应槽函数的方法;6,了解并掌握使用双缓冲机制绘图的方法。实验环境操作系统:Windows7应用软件:QtCreator开发平台:qt-sdk-win-opensource-2009.04程序流程图:四、核心源代码mainwindow.cpp的内容(实现菜单项的功能和绘图功能的调用)绘图板主窗口大小设为(打开文件将画布添加到对象的背景色设为初始化大小设为将加入到主窗口的中心区未命名画笔颜色组合框填充颜色组合框/获得图片的大小,然后更改的大小保存文件图片已经改变,是否保存?另存为新建菜单打开菜单保存菜单另存为菜单退出菜单关闭事件打印菜单放大菜单获得图片的大小,然后更改的大小缩小菜单还原菜单旋转菜单拉伸菜单清空菜单绘图工具栏菜单先绘制一个的小图片,然后给其涂色的图标黑色再用该图片作为组合框条目白色红色绿色蓝色无颜色黄色组合框无矩形利用直线椭圆格组合框实线即透明选择图形类中的枚举变量画笔风虚线画笔线宽组合框画笔颜色组合框填充颜色组合框关于对话框的实现选择直线利用类中的枚举变量选择无选择矩形选择椭圆选择实线选择虚线paintarea.cpp的内容(实现双缓冲绘图并提供绘图接口的调用)用32位颜色画布的初始化大小设为画2布5初5始,化2背5景5色,使2用5白5色)如果正在绘制特殊图形,则显示临时绘图区上的内容新建临时的I利用它进行旋转操作只会复制图片上的内容,不会复制坐标系统完成0旋;转后/将/角度值重新设为0当鼠标左键按下获得鼠标指针的当前坐标作为起始坐标如果鼠标左键按着的同时移动鼠标获得鼠标指针的当前坐标作为终止坐标如果不进行特殊图形绘制,则直接在上绘制如果绘制特殊图形,则在临时绘图区上绘制每次绘制前用上一次中的图片对其进行填充在鼠如果鼠标左键释放上绘图由起始坐标和终止坐标绘制直线让终止坐标变为起始坐标进行更新界面显示,可引起窗口重绘事件,重绘窗口因为的背景色要用类型的颜色,所以这里进行了一下转换实现了文件存储用现在的画布背景色进行填充五、实验步骤第一部分:设计界面一设计菜单1. 在QtCreator中新建Qt4GuiApplication工程,我这里使用的工程名为paint,使用默认的QMainWindow作为主窗口。2. 为了让程序中可以使用中文,我们先在main.cpp中加入头文件#include,并加入下面一行代码:QTextCodec:setCodecForTr(QTextCodec:codecForLocale();3打开mainwindow.ui,先设计菜单。依次是文件菜单,编辑菜单,工具菜单和帮助菜单。其内容分别如下:文件I编辑叭工新逹晶二項打开辺帝保存请另存为(A)鞘打印(U亀退出(XI诸TypmHereAddSeparator工具“虚线实线Type;HereAddSep:eq-ator工具(II帮助绘閣工具栏4.向工程中添加资源文件,向其中添加要使用的菜单图标。添加完后记着保存一下资源文件,不然的话,在资源管理器中可能看不到添加的图标。5打开动作编辑器ActionEditor,编辑已添加的菜单动作,为菜单动作添加快捷键、快捷图标和状态栏提示,具体操作很简单,这里不作赘述,最终设置完成后结果如下图:NamQ蠲欝33呎,叫0宀?2-literCtrl+HCtrl+OCtrl+SCtrl+PCtrl+UpCtrl+DownCtrl+HoniHCtrl+LeftCtrl+RightCtrl+DelToolTip匕如下图所示:UfvE-QT(O$为(?厲工军建开存存印出丈小原转伸空图于线新打保另打退放缩还旄拉m绘关直bd虛线二.添加绘图工具栏形圆线鏡我们这里的绘图工具栏使用的是一种叫做Dock的窗口,它与其它窗口的不同就是它可以在其父窗口中浮动,也可以停靠在父窗口的边界,就像一个工具栏一样。1.我们在左边的部件栏中找到DockWidget,将其拖入到设计区。添加后它默认在左边框上停靠着,设置其windowTitle属性为“画图工具”,并在其上面添加如下图所示的标签、spinbox和combobox:其中,画笔线宽下的部件为SpinBox,其属性中的objectName为penWidthSpinBox,属性栏最下面的minimum属性改为1,即最小值为1。其余部件均为组合框ComboBox,objectName依次为:选择图形:shapeComboBox画笔类型:penStyleComboBox画笔颜色:penColorComboBox填充颜色:brushColorComboBox-dockii1idget:do匚kWidgetCDiitEntsbrushColorComboBoklabellabel_2label_3labelslabel5tjQDockWidgetpQWidgetjCombOBok:ULabelGQLabelQLabelQQLabelVQLabelpenColorComboBoxnfyComtnjBaKpenStyleComboBoxQCombuBoxp灯卅idthSpinEox三QSpinJioxshapeCornboBokyComboBoK2.为combobox“选择图形”和“画笔类型”添加条目,结果如下图:三添加画布因为画布是真正实现绘图功能的,所以我们新建一个类来实现所有跟绘图有关的功能这里先进行操作,对于一些内容到后面我们会详细解释的。1.往工程中添加新的C+类,类名为PaintArea,以QWidget作为基类,如下所示:2.在paintArea.h中声明对象和函数。判断画布内容是否被更改过保存图片打开图片放大缩小还_原1旋转拉伸清空设置画笔风格设置画笔宽度设置画笔颜色设置填充颜色枚举变量,几个图形的选择没有图形直线矩形椭圆设置要绘制的图形重绘事件鼠标按下事件鼠标移动事件鼠标释放事件进行绘制类对象,用于在其上绘图颜色对象,存储的背景色定义两个坐标对象存放鼠标指针的前后两个坐标标志画布是否被更改过缩放量角度拉伸量画笔颜色填充颜色画笔宽度画笔风格当前图形临时绘图区是否在绘制特殊图形在中的构造函数里初始化对象并实现相应绘图使用的函数功能。(源代码参见关键代码)第二部分:实现基本功能我们用打开上次的工程,即打开工程文件夹中的文件。一.添加设置画布的对话框首先,因为新建画布时,我们想要可以设置画布的大小和背景颜色,所以在开始讲解之前,我们先添加一个对话框,用来让用户进行相关设置。我们添加新的,选择带有按钮的对话框作为模板,如下图所示。然后类名使用D.我们将其界面设计如下。.我们在文件中声明函数和对象。.我们在文件中声明函数和对象。为,s修改,点击它显其中“宽”后的,将其修改为,修改其为;修改“高”后的,将其改为其为,为;“背景颜色”后的部件是一个.我们在文件中声明函数和对象。示颜色对话框,和一个,用于显示颜色对话框返回的颜色。.我们在文件中声明函数和对象。用于返回画布的宽用于返回画布的高用于返回画布的背景色.然后在用于保存画布的背景色中实现相应函数。从颜色对话框获得颜色如果得到的是可用的颜色i11erCheckableToolTipText5实现菜单项的功能最后我们在主界面中进入新建菜单的事件,如下图所示。3U5-20回0口打开劎*保存妙另存毬)tTSnr*pShortcutNew.Edit.Gotoslot.l-.r显示这个颜色新逹(N)打开血1保存(S)另存肯(A)tTfnrpi然后就可以编写菜单项的实现槽函数,其他菜单项的实现方法一样,具体源代码参见关键源代码的内容。第三部分:双缓冲绘图如果不使用双缓冲绘图,实验会有以下几个问题:(1) 画布放大后,滚动条不跟着放大。(2) 绘制直线,矩形等图形时有重影。(3) 画布进行放大,旋转等操作后无法正常绘图。应用坐标系的知识,在绘制图片时,当进行放大、拉伸等操作时,要改变相应的坐标值。具体过程参见相关资料,这里不作赘述。利用两个对象,一个保存临时图像,一个保存最终图像,这样实现交互绘图的方法就叫做双缓冲绘图。第四部分:移植到开发板1使用或盘等工具将工程文件夹拷贝到虚拟机中,并在虚拟机终端上配置环境变量(配置方法上课已经讲过,不再说明),并使用“”、“”、“”等指令编译出可以在开发板上运行的可执行程序。2将可执行程序和相应的资源(如图片)一起拷贝到开发板上(在此之前需要在开发板上配置支持库和中文库还有环境变量,具体过程和需要的资源老师已经讲过,不再说明),使用“可执行文件名”来修改权限,使用“可执行文件名”指令执行应用程序。六、心得体会通过这次实验,我了解了Qt在开发嵌入式程序的过程中的巨大作用和带来的方便性、可移植性。在本次实验中,我觉得最方便的就是QtDesigner在设计图形界面和编辑相应槽函数时的灵活性和便捷性。同时,通过实验,我进一步掌握了QPainter在绘图方面的相应库函数,而不仅仅是老师讲过的画线等简单库函数。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!