《数字图像处理及工程应用》课件第15章_第1页
《数字图像处理及工程应用》课件第15章_第2页
《数字图像处理及工程应用》课件第15章_第3页
《数字图像处理及工程应用》课件第15章_第4页
《数字图像处理及工程应用》课件第15章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024/8/21第1页第15章Code::Blocks入门15.1Code::Blocks主界面常用工具栏工程管理栏源代码编辑区信息显示区(1)打开Code::Blocks(2)Code::Blocks主界面:菜单栏、状态栏、常用工具栏、工程管理视图、源代码编辑区和信息显示区等部分图15.1Code::Blocks主界面2024/8/21第2页第15章Code::Blocks入门15.2工程创建15.2.1新建工程(1)【File】【New】【Project】图15.2启动新建工程2024/8/21第3页第15章Code::Blocks入门(2)【ConsoleApplication(控制台应用)】【go】注意:如果想创建一个基于wxWidgets的GUI风格的应用程序,则可以选择【wxWidgetsProject】工程模板2024/8/21第4页第15章Code::Blocks入门(3)【C++(编程语言)】【Next】图15.4程序语言选择对话框2024/8/21第5页第15章Code::Blocks入门(4)【工程命名为“MyTest”】【D:\workspace】【Next】注意:工程名和路径都是任意的,名称一般是为了便于记忆和理解图15.5工程命名及存放位置设置2024/8/21第6页第15章Code::Blocks入门(5)【编译器选择和构建选项设置】【Finish】注意:一般情况下,各选项默认即可图15.6编译器及构建选项设置2024/8/21第7页第15章Code::Blocks入门15.2.2编辑“MyTest”工程的整体如下图所示:注意:(1)在“Projects”下面可以查看所有的头文件和源文件;(2)“main.cpp”为主函数。图15.7新建工程图示2024/8/21第8页第15章Code::Blocks入门当有需要创建新文件时(1)【File】【New】【File】(2)根据需要,选择【C/C++头文件】、【C/C++实现文件】和【空白文件】中的一种(3)文件命名及构建模式设置,需要注意文件命名当有需要添加/删除文件时(1)在工程管理视图中工程名上点击鼠标右键(2)选择快捷菜单中相应的命令2024/8/21第9页第15章Code::Blocks入门15.2.3构建与运行编译、链接有三种方式:(1)选择菜单【Build】【Build】注意:可以直接点【运行(run)】,也建议这样做,会更简单、直接。2024/8/21第10页第15章Code::Blocks入门(2)快捷键:<Build>Ctrl+F9<Run>Ctrl+F10(3)工具栏:,自左至右依次为<Build>、<Run>、<Buildandrun>、<Rebuild>和<Abort:终止当前操作命令>。2024/8/21第11页第15章Code::Blocks入门构建日志显示:如果代码中存在错误或警告,则会在“Buildmessages”显示出来,包括出错文件、行号和具体出错提示信息,这时我们就需要点击相应的出错提示,对源代码进行反复的修改,直到构建成功为止。注意:错误一定要改;警告可以忽略,也可以进行修改。图15.13Build日志显示2024/8/21第12页第15章Code::Blocks入门15.2.4代码调试1、断点的设置/取消(1)菜单【Debug】<Togglebreakpoint>,设置断点(1')在当前源文件行号处,单击鼠标左键,取消断点(2)运行(run),程序运行到断点处(3)菜单【Debug】【Continue】,继续运行注意:可以在当前行的最左边点一下,就可以设置/取消断点。目前,很多大型软件都具有这个功能。2024/8/21第13页第15章Code::Blocks入门2、调试窗口菜单【Debug】<Debuggingwindows><Breakpoints>:查看断点设置情况;<Examinememory>:内存查看;<Runningthreads>:正在的运行的线程;<Watches>:查看变量、参数的值,可以自行通过快捷菜单添加、删除。2024/8/21第14页第15章Code::Blocks入门15.3GUI界面设计15.3.1wxWidgets窗口1、wxWidgets窗口解析(1)客户区(ClientArea)(2)滚动条(ScrollBar)(3)顶层窗口(TopWindow)(4)坐标体系(CoordinateSystem)(5)窗口绘制(Repainting)(6)改变大小(Resizing)(7)窗口类型图15.19窗口示意图2024/8/21第15页第15章Code::Blocks入门2、wxWidgets主要窗口类类别名称用途/含义基本窗口类wxWindow所有窗口类的基类wxControl所有控件的基类wxControlWithItems拥有多个子项目的控件基类顶层窗口类wxFrame可以包含其他子窗口、大小可变的窗口类wxMDIParentFrame管理其他Frame类的类wxMDIChildFrame可以被其父窗口管理的Frame类wxDialog对话框类容器窗口类wxPanel给其他窗口提供布局的窗口类wxNotebook可以使用Tab页面切换的窗口类wxScrolledWindow带滚动条的窗口类wxSplitterWindow分割窗口类静态控件类wxGauge、wxStaticText、wxStaticBitmap、wxStaticLine、wxStaticBox非静态控件类wxButton、wxBitmapButton、wxChoice、wxComboBox、wxCheckBox等等菜单wxMenu用于主菜单或弹出菜单控件条wxMenuBarwxFrame上的菜单条wxToolBar工具条wxStatusBar状态条2024/8/21第16页第15章Code::Blocks入门3、wxWidgets窗口布局(1)wxWidgets的窗口布局使用窗口布局控件(2)wxWidgets的布局控件可以进行非常复杂的窗口布局(3)窗口布局控件建立的是一种包含继承关系,开销较小2024/8/2115.3.2wxWidgets标准对话框第15章Code::Blocks入门1、信息对话框(1)wxMessageDialog(2)wxMessageBox对应按钮wxMessageDialogwxMessageBoxOkwxOKwxID_OKCancelwxCANCELwxID_CANCELYeswxYESwxID_YESNowxNowxID_NO(3)wxProgressDialog(4)wxBusyInfo第17页表15.2wxMessageBox和wxMessageDialog的返回值2024/8/21第15章Code::Blocks入门2、文本和目录对话框(1)wxFileDialog(2)wxDirDialog3、选择和选项对话框(1)wxColourDialog(2)wxFontDialog(3)wxSingleChoiceDialog和wxMultiChoiceDialog4、输入对话框wxNumberEntryDialog、wxTextEntryDialog等第18页2024/8/21第15章Code::Blocks入门第19页15.3.3wxFormbuilder1、利用wxFormbuilder进行UI设计的步骤(1)在界面中增加容器组件(如Frame、Diloag等);(2)在容器组件中增加各种布局控件sizer(如VerticalSizerBox、FlexGridSizer等);(3)在布局控件中增加各种控件(如Button、Statictext等);(4)对布局控件和包含其中的组件进行参数设置;(5)添加控件的事件响应动作;(6)自动生成代码。2024/8/21第15章Code::Blocks入门第20页15.3.4GUI设计举例1、自定义对话框GUI界面的设计步骤(1)确定窗口继承关系;(2)在wxFormbuilder中新建一个工程,或通过Code::Blocks打开已有的fbp文件;(3)向工程中添加一个对话框;(4)向对话框中添加控件,利用布局容器进行布局;(5)设置各控件的属性;(6)增加事件映射以及事件处理函数;(7)在应用程序中调用这个对话框。2024/8/21第15章Code::Blocks入门第21页2、自定义对话框GUI界面的设计过程(1)确定组件及布局关系图15.22对话框对象树图15.23窗口继承关系2024/8/21第15章Code::Blocks入门第22页(2)新建或打开wxFormbuilder工程文件,此例选择从Code::Blocks中打开fbp文件。如图15.14所示,双击Others\WxWizDialog.fbp。图15.24打开fbp文件以编辑(Code::Blocks)2024/8/21第15章Code::Blocks入门第23页(3)打开wxFormbuilder设计界面图15.26wxFormbuilder设计界面2024/8/21第15章Code::Blocks入门第24页(4)向对话框中添加控件和布局容器,使各控件都处于正确的状态,包括布局容器的属性项设置、控件的位置、大小和自动缩放等属性图15.28属性设置图15.29添加控件并布局后的对话框2024/8/21第15章Code::Blocks入门第25页容器名称属性名boxSizer3fgSizer1fgSizer2fgSizer3fgSizer4fgSizer5fgSizer6orient垂直........................rows....341141cols....114611growablerows....0,22,30030growablecols....000,1,2,31,3,400flexibledirection....wxBothwxBothwxBothwxHori…wxBothwxBoth属性名控件nameid垂直居中水平居中扩展伸缩边界姓名m_TextNameID_NAMEYesYesYesYesAll年龄m_SpinAgeID_AGEYesYesYesNoAll性别m_ChoiceSexID_SEXYesYesYesNoAll投票m_CheckVoteID_VOTEYesYesYesNoAll复位m_btnResetID_BTNRESETYesYesYesNoAll确认m_btnOkID_BTNOKYesYesYesNoAll取消m_btnCancelID_BTNCANCELYesYesYesNoAll帮助m_btnHelpID_BTNHELPYesYesYesNoAll表15.3布局容器及其主要属性表15.4主要控件的属性PersonalRecord对话框用到的布局容器及控件属性2024/8/21第15章Code::Blocks入门第26页(5)为控件添加事件处理函数,以响应用户对控件的操作图15.30为控件添加事件处理函数2024/8/21第15章Code::Blocks入门PersonalRecord对话框添加的事件处理函数列表表15.5主要控件事件及处理函数事件控件名称事件处理函数何时触发m_btnOkOnButtonClickOnBtnOk用户鼠标左键单击时m_btnCancelOnButtonClickOnBtnCancel用户鼠标左键单击时m_btnResetOnButtonClickOnBtnReset用户鼠标左键单击时m_btnHelpOnButtonClickOnBtnHelp用户鼠标左键单击时m_ChkVoteOnUpdateUIOnChkVoteUI用于处理UI更新第27页2024/8/21第15章Code::Blocks入门(6)为界面生成Code::Blocks源代码并生成派生类1)生成代码:点击wxFormbuilder工具栏上的“GenerateCode”按钮图15.31生成代码第28页2024/8/21第15章Code::Blocks入门2)生成派生类:调用菜单ToolsGenerateInheritedClass,指定派生类名即可图15.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论