2023年7月9日发(作者:)
第12章使用QtCreator本章重点★了解QtCreator支持的平台和版本情况★了解QtCreator的组成和主要特点★掌握QtCreator的几种不同模式和操作方法★掌握QtCreator各个组成部分的操作方法★掌握使用QtCreator开发应用程序的流程和基本步骤12.1QtCreator概览QtCreator是Nokia出品的Qt4“官方”的跨平台IDE,它能够在Linux、MacOSX以及Windows等绝大多数平台上使用,它的界面简洁大方、操作便捷顺畅,是广大Qt开发人员的首选IDE之一。我以写书时最新的QtCreator1.2.1版为例,向大家详细介绍它的使用方法。当你安装了QtSDK后,QtCreator就已经安装到了你的系统中了。你也可以单独安装QtCreator,但是我并不推荐这种做法,因为你在开发时仍然需要QtSDK中的其它内容。有关QtCreator的安装这部分内容,请参看第4章。12.1.1支持的平台QtCreator支持以下平台或更高的平台版本。◆WindowsXPServicePack2◆WindowsVista◆(K)UbuntuLinux5.04◆(K)UbuntuLinux7.0432位和64位版本◆MacOS10.4及更高版本小贴士:如果在以上平台采用源代码编译的方式安装QtCreator的话,需要使用Qt4.5.0或更高的版本。笔者也建议读者朋友尽量使用Qt4.5.0及以上的版本。12.1.2主要特点QtCreator包含有如下重要特性:1.高度智能的代码编辑器支持代码高亮以及自动完成功能。4工程向导(ProjectWizard)使用ProjectWizard,用户可以轻松创建基于控制台的应用程序、GUI应用程序以及C++类库等多种类型的工程。3.集成帮助功能在QtCreator中可以查阅相关的Qt文档和示例程序。4.集成QtDesigner功能无缝集成了QtDesigner,使用者不用单独打开QtDesigner即可完成用户界面的创建工作。用户只需在ProjectExplorer中双击.ui文件,即可调用集成的QtDesigner完成编辑工作。5.模块间智能导航功能用户可以通过使用快捷键,来准确定位文件信息以及在不同的模块间导航。工程文件格式化功能支持将.pro文件作为工程描述文件。7.集成调试器可以使用GNU的GDB(开源版)以及Microsoft的CDB作为调试器(商业版)。12.2QtCreator的组成QtCreator主要由菜单(MenuBar)、模式选择器(ModeSelectors)、项目浏览器(ProjectInspector)、代码编辑器(CodeEditor)、输出面板(OutputPanes)、边栏(Sidebars)、快速导航面板(QuickOpenPane)等组件构成。在图12-1中显示了Edit模式下,QtCreator主要的组成部件以及布局情况。其它模式下的组成和布局我们将结合模式选择器(ModeSelectors)讲解。图12-1QtCreator布局架构12.2.1模式选择器(ModeSelectors)QtCreator有6种工作模式可供开发者选择,分别是:Welcome,Edit,Debug,Projects,Help,和Output。模式选择器允许开发者在处理不同的任务时可以快速的切换工作模式,比如编辑代码、浏览帮助、设置编译器环境等。在切换时,你可以通过在界面左边的模式选择器分栏上单击鼠标左键,或者使用相对应的快捷键。当你使用特定模式下才有的动作时,也会使你自动切换到相应的模式,比如当你依次单击菜单Debug/StartDebugging时,QtCreator将自动切换到Debug模式下。1.欢迎模式(WelcomeMode)如图12-2所示,在该模式下QtCreator显示一个欢迎屏幕。在这个模式下,你可以快速的载入最近的人机对话或者是独立的项目,也可以向QtCreator项目组提供反馈意见,甚至加入到QtCreator项目组中,成为其中的一员。这个屏幕分为3个专栏:GettingStarted、Develop和Community。在GettingStarted专栏下,你可以学习QtCreator的使用以及Qt4编程的相关知识和技能;在Develop专栏下,你可以快速的恢复与QtCreator的上一次对话过程,也可以打开新近使用的项目或者创建一个新的项目;在Community专栏下,你可以获取QtLabs网站上的新闻,也可以访问流行的Qt站点。当你在命令行下面调用QtCreator时,在不附加额外的参数的情况下将进入到这个欢迎模式下。图12-2欢迎模式界面2.编辑模式(EditMode)如图12-3所示,在Edit模式下,你可以编辑项目和源代码文件,在模式选择器右边一点的边栏(sidebar)上点击,你就可以在不同的文件中导航了。图12-3编辑模式界面3.调试模式(DebugMode)如图12-4所示,QtCreator提供了多种不同的方式辅助程序员查看应用程序运行的状态来调试程序。后面我们会结合具体例子讲解。图12-4调试模式界面4.项目模式(ProjectsMode)如图12-5所示,在项目模式下,首先你可以查看所有项目的列表,并可设置以哪一个项目为当前的活动项目。然后可以选定项目,针对构建(build),运行(run)以及代码编辑器等多个方面进行详细设置。图12-5项目模式界面5.帮助模式(HelpMode)如图12-6所示,主要是无缝集成了Qt的文档和示例中的相关内容,你可以不必另行打开QtAssistant,就可以在QtCreator的Help模式下获得帮助。图12-6帮助模式界面6.输出模式(OutputMode)如图12-7所示,你可以在Output模式下,观察各种流程的细节,比如qmake以及应用程序的编译、构建情况。这些信息你也可以再输出面板里面获得(OutputPanes)。图12-7输出模式界面12.2.2输出面板(OutputPanes)QtCreator的输出面板主要由4个子面板组成,分别是:BuildIssues,SearchResults,ApplicationOutput,和CompileOutput。它们在所有的模式下均可以使用。1.构建过程和结果(BuildIssues)子面板如图12-8所示,该面板主要显示与构建相关的信息,例如警告信息、错误信息等等,并且指出了该产生该信息的具体位置以及可能的原因。图12-8构建的流程与结果(BuildIssues)2.搜索结果(SearchResults)子面板该面板提供了执行搜索动作后的结果输出显示,搜索的范围可以是全局的,也可以是具体局部的,比如你可以在某一个指定的文档中搜索某个词组,也可以把范围扩大到所有项目或者是电脑上的硬盘目录等等。举例来说,我们在TextFinder目录下面搜索含有“TextFinder”这个词,如图12-9所示即是搜索的结果显示。图12-9搜索结果(SearchResults)3.应用程序输出子面板如图12-10所示,应用程序输出子面板显示了应用程序的运行状态,包括正常运行以及Debug模式下的信息,比如你可以在程序中调用qDebug()函数来查看输出情况。图12-10应用程序(构建结果)的输出(ApplicationOutput)4.编译(Compile)子面板如图12-11所示,编译子面板显示了所有来自编译器的输出信息,实际上它包含了更为详细的输出信息,包括BuildIssues子面板显示的信息。图12-11编译情况的输出(CompileOutput)12.2.3代码编辑器(CodeEditor)代码编辑器辅助开发者创建、编辑代码,并可在其间导航。它具有代码高亮、代码自动完成、上下文提示以及内嵌代码错误指示等特性。1.属性设置可以依次点击【Tools】→【】→【TextEditors】,来设置代码编辑器的各种属性。图12-12显示了如何设置Font&Colors(字体和颜色)属性。图12-12设置代码编辑器的字体颜色(Font&Colors)属性图12-13显示了如何设置Behavior(行为)属性。图12-13设置代码编辑器的行为(Behavior)属性图12-14显示了如何设置DisPlay(显示)属性。图12-14设置代码编辑器的展现(Display)等属性图12-15显示了如何设置Completion(代码完成)属性。图12-15设置代码编辑器的自动完成(Completetion)等属性2.快捷键QtCreator的代码编辑器支持很多的快捷键,表列出了常用的一部分:表12-1代码编辑器支持的快捷键代码块间导航选中代码块/取消选中代码块/选中上级代码块向上/向下移动某行代码代码自动完成格式化缩进代码块折叠/展开声明注释或取消注释删除一行代码在类的头文件和实现文件间切换增大或缩小字体的大小在声明和定义之间转换切换到外部的编辑器Ctrl+[和Ctrl+],一般我们常用在比如在{}代码块间导航Ctrl+U/Ctrl+Shift+U/再次按下Ctrl+UCtrl+Shift+Up/Ctrl+Shift+DownCtrl+SpaceCtrl+ICtrl+Ctrl+/Shift+DelF4Ctrl键+鼠标滚轮F2和Shift+F2键适用于名字空间、类、方法、变量、宏等.依次点击菜单Edit->Advanced->Openinexternaleditor3.代码完成功能(CodeCompletion)当你在代码编辑器中输入某个词组时,系统会自动弹出一个上下文提示窗口,里面列举了可能符合你的意图的完整代码,这个上下文提示窗口又被称为是“代码完成提示盒子”,其中常见的类别有类、名字空间、方法、变量、宏以及关键字等。表12-2显示了这些常见类别以及所对应的图标。表12-2常见类别图标类(Aclass)枚举常量(Anenum)枚举常量值(Anenumerator(valueofanenum))方法(Afunction)私有方法(Aprivatefunction)保护方法(Aprotectedfunction)变量(Avariable)私有变量(Aprivatevariable)保护变量(Aprotectedvariable)信号(Asignal)槽(Aslot)私有槽(Aprivateslot)保护槽(Aprotectedslot)关键字(Akeyword)宏(Amacro)名字空间(Anamespace)12.2.4会话管理器(SessionManagement)在QtCreator中,一个会话(session)指的是用户与QtCreator交互的一次过程,可以包括加载的项目、打开的文件以及代码编辑器的设置等等。当你运行QtCreator时,你已经开启了一个的对话,QtCreator会将它记录下来。如图12-16所示,你可以依次点击【File】→【Session】→【】来创建和管理对话。图12-16会话管理器要在不同的对话间切换,你可以依次点击【File】→【Session】来切换实现,如图12-17所示。如果你没有创建新的对话,并且没有选择任何对话,那么QtCreator将一直使用默认的对话。图12-17切换会话12.2.5Qt帮助集成功能(QtHelpIntegration)在QtCreator中使用帮助,有两种主要的方式,一种是随时按下F1键,一种是切换到Help模式下,QtCreator使用插件的方式将Qt的文档和示例集成进来。图12-18示例了使用F1键的方式,你可以选中某个词或者类名,甚至整条句子等,然后按下F1键,在QtCreator的右边将增加一个面板,在里面显示了文档中有关条款的内容。图12-18查阅帮助12.2.6Qt设计师集成功能(QtDesignerIntegration)如图12-19所示,在使用QtCreator开发应用程序时,常见的用法是用鼠标左键双击.ui文件,即可打开QtCreator的QtDesigner集成功能。你可以看到,QtCreator已经与QtDesigner完全集成在一起了。这样你就可以在不单独运行QtDesigner时,在QtCreator中完成应用程序界面的设计,并且与QtCreator的项目管理以及其它功能在一起获得对Qt项目的完整把握。图12-19在QtCreator中集成QtDesigner12.3快捷键和常用技巧众所周知,有的开发者喜欢使用鼠标完成常用的操作,而有些开发者更喜欢使用键盘快捷键。QtCreator的操作简单明了,它为主要的功能提供了对应的快捷键组合以及导航,这将帮助开发者提高开发效率。QtCreator提供了丰富的快捷键来辅助开发者加快开发进程。下表中列出了常用的快捷键。表11-3快捷键和常用技巧功能激活Welcome模式(ActivateWelcomemode)激活Edit模式(ActivateEditmode)快捷键Ctrl+1Ctrl+2Ctrl+3Ctrl+4Ctrl+5激活Debug模式(ActivateDebugmode)激活Projects模式(ActivateProjectsmode)激活Help模式(ActivateHelpmode)功能激活Output模式(ActivateOutputmode)查找(Find)查找下一个(Findnext)回到代码编辑器(Gobacktothecodeeditor)跳转至代码的某一行(Gotoaline)在页面间导航(Navigatebetweenpages)启动调试(Startdebugging)停止调试(Stopdebugging)快捷键Ctrl+6Ctrl+FF3EscCtrl+LAlt+Left,Alt+RightF5Shift+F5在代码的声明和定义之间切换(Togglecodedeclarationanddefinition)F2在类的头文件和实现文件之间切换(Toggleheaderfileandsourcefile)F4切换到边栏(ToggleSideBar)切换到BuildIssues面板(ToggleBuildIssuespane)切换到SearchResults面板(ToggleSearchResultspane)切换到ApplicationOutput面板(ToggleApplicationOutputpane)切换到CompileOutput面板(ToggleCompileOutputpane)Alt+0Alt+1Alt+2Alt+3Alt+4小贴士:就笔者的体会,把键盘与鼠标操作结合起来使用,往往效率最高,因此熟悉主要功能的快捷键是很有必要的。但大家也不必强求自己非要掌握和使用哪种方式,只要熟能生巧,顺其自然就好。12.4QtCreator构建系统的设置QtCreator的构建系统是建立在qmake和make基础之上的,设置QtCreator的构建系统,本质上就是对qmake和make进行设置,只不过是以图形界面形式完成。对QtCreator构建系统的设置,默认情况下其实是对qmake的设置,只不过QtCreator为我们提供了GUI界面,使得这些工作变得简单和生动起来,这就需要切换到Projects模式,方法是使用鼠标或者按下Ctrl+4组合键,当然前提是你已经打开了一个工程。如图12-20所示。图12-20切换到Projects模式默认情况下,QtCreator创建debug和release两个版本,它们都使用DefaultQtVersion,每一个版本都有【General】、【BuildEnvironment】、【BuildSteps】三个分栏,你可以在其中设置相关的内容。在介绍如何设置之前,先了解几个常用术语。表11-4常用术语术语含义Auto-detectedQt如果你在系统的PATH目录中设置了Qt的目录,那么qmake将自动发现这个版本,称为Auto-detectedQt。DefaultQt它默认就是Auto-detectedQt。如果你在PATH中没有设置Qt的目录,那么QtCreator将把自动寻找到的Qt4版本作为DefaultQt,并且你在创建新的工程时,将采用这个版本。你可以依次点击主菜单的Tools->Options->Qt4->DefaultQtVersion.中查看DefaultQt。ProjectQt这是你的具体项目采用的Qt版本。你可以通过依次点击Build&Run->BuildSettings->BuildConfigurations来查看并设置它。默认情况下,它等同于DefaultQt。ShadowBuild它的机理类似于大家所熟悉的影子模式,可以命名为“以影子模式构建(项目)”采用这种模式构建时,将在一个与你的项目的源代码目录不同的目录下进行,而你的工程源目录将是“干净”的,不会有任何的改动。当你的工程设置需要频繁变更时,使用影子模式以适应各种情况是最佳的选择。.在【General】标签页中,如图12-20所示,你可以为项目选择Qt的版本,要不要使用ShadowBuild等。在【BuildEnvironment】标签页中,如图12-21所示,你可以为QtCreator设置环境,如常见的PATH、QTDIR、LIB变量等,当你使用SDK方式安装Qt,安装程序会把这些环境为你设置好,不必手动修改。图12-21设置【BuildEnvironment】标签页图12-22设置【BuildSteps】标签页在【BuildSteps】标签页中,如图12-22所示,你可以为QtCreator配置qmake和make的属性,更进一步的,你可以自定义编译的具体步骤。12.5处理项目间依赖关系(Dependencies)如果你在一次对话中加载了多个项目,你就可以设置它们之间的依赖关系,这也将影响你的项目的构建顺序。具体做法是打开Dependencies标签页,在其中选中你的依赖,如图12-23所示,我们同时载入了两个项目:textfinder和stylesheet,并以textfinder工程为当前工程(activeproject),点击Dependencies标签页,选中stylesheet前面的复选框,这时textfinder工程就以stylesheet为依赖了。图12-23设置项目间的依赖关系12.6Qt多版本共存时的管理QtCreator允许使用多个Qt4版本,并且可以在不同的版本间快速切换。当QtCreator启动时,它首先会根据环境变量PATH中设定的目录寻找Qt4,这个被自动找出来的Qt4版本称作“Auto-detectedQt”。术语“versionofQt”指的通常也是Auto-detectedQt。当然了,读者朋友如果只是安装了一个版本的Qt4,并且准备只使用这一种的话,只需要正确的设定PATH变量,而无需手动配置Qt的版本了(如果使用SDK方式安装,就更为简便,Qt4SDK会自动设置环境变量),这一节就可以略过不看。表12-4列出了与此有关的常用术语,了解它们的含义很有必要。此外,也可以自由的添加或删除不同的Qt版本。方法是依次点击菜单【Tools】→【】→【Qt4】→【QtVersions】,如图11-24所示,如果是在Windows平台上使用MinGW作为编译器,那么需要告诉QtCreator你的MinGW安装到了什么地方,当然如果是使用SDK方式安装的Qt,则无这一步的必要。设置它的方法是依次点击【Tools】→【】→【Qt4】→【QtVersions】→【MinGwDirectory】。如果编译安装Qt时是专为MicrosoftVisualC++的,那么QtCreator将自动为你设置好这些环境变量。图12-24设置Qt的版本小贴士:上述这些设置也可以在上一节讲到的配置工程的构建系统中完成,请读者自行验证。11.7使用定位器在代码间快速导航QtCreator提供了一个定位器,它位于QtCreator窗体的底部,它是一个智能的编辑框(lineedit),你可以使用它在你的项目内部或硬盘上执行不同的定位(搜索)任务,如可以定位文件、类、方法等等。与其它我们以前熟悉的IDE中的“搜索”器或定位器不同的是,当你用鼠标左键在编辑框中点击时,它将弹出一个上下文窗口。如图12-25所示。图12-25定位器的上下文窗口11.7.1如何定位文件直接举例子吧,假设你想打开项目中这个文件,那么你可以使用鼠标在定位器上点击或者按下Ctrl+K键,在其中输入文件名即,然后按下回车键。QtCreator将使用代码编辑器打开它。你也可以不输入全称,而是输入关键字,或者加上*和?这样的通配符,这时定位器将会把所有符合条件的信息罗列出来,请你选择。在其中选择你满意的项目,完成定位即可。11.7.2如何设置过滤条件你可以为定位器设置许多不同的过滤条件(Filters),这样你就可以执行各种不同的定位任务。下面列出了一些常用的过滤条件。◆在你的硬盘上的任意文件(将通过文件系统查找)◆在你定义的子目录结构中的文件◆在你的工程文件(.pro)中提到的文件,如头文件、实现文件、资源文件、资源集文件以及.ui文件◆任何打开的文档◆在你的项目中的定义或引用的类或方法◆在Qt文档中的帮助主题◆在你的代码编辑器中的任意指定的一行代码那么如何使用这些过滤条件呢,方法按下Ctrl+K键或者使用鼠标,激活定位器,然后输入冒号:,接着输入一个空格,在这个空格之后输入你的定位前缀。举个例子,假如你需要定位QDataStream这个类的定义,那么就在激活定位器后,依次输入冒号、空格以及QDataStream,如图12-26所示。定位器将为你列出找到的相关信息,选中其中的一项,按下回车键即可定位到QDataStream的定义,(也可使用鼠标操作,请读者自行验证)。如图12-27所示。图12-26输入过滤条件图12-27在代码编辑器中查看如果你觉得系统内置的这些过滤条件不能满足你的要求,那么你可以自己定义一个。方法是用鼠标点击定位器上的那个用来搜索的按钮,然后在弹出的上下文菜单上选择【】,如图12-28所示。图12-28自定义过滤条件上下文菜单接下来在弹出的对话框中点击【Add】按钮,创建一个新的过滤条件。这将弹出【FilterConfiguration】对话框,如图12-29所示,为你的过滤条件起一个名字,选择搜索目录,设置可能的文件后缀名,最后再设置关键字的前缀。图12-29增加新的过滤条件设置完成后,关闭这个对话框。定位器将按照你指定的过滤条件查找适合的信息并缓存起来。但是定位器的前端显示还没有更新,所以你需要按图12-28所示的上下文菜单中的【Refresh】选项来完成后台缓存和前端显示的同步。表12-5列出了常见过滤条件的操作方法以及示意的屏幕截图。表12-5常见过滤条件的操作方法和示意图过滤条件组合键屏幕截图跳转至当前文档依次输入Ctrl+K,中的某一行l,空格,代码的行号过滤条件定位一个符号组合键依次输入屏幕截图(类、文件名、Ctrl+K,:,空格,宏等)的定义符号的名字定位某一条帮助依次输入主题Ctrl+K,?,空格,主题的名字定位一个打开的依次输入Ctrl+K,文档o,空格,文档名定位文件系统中依次输入Ctrl+K,的某一个文件(浏览文件系统)f,空格,文件名过滤条件组合键屏幕截图定位在最近载入依次输入Ctrl+K,的项目中的某一a,空格,文档名个文档定位在当前项目依次输入Ctrl+K,中的某一个文档p,空格,文档名定位一个类的定依次输入Ctrl+K,义c,空格,类名定位一个方法的依次输入Ctrl+K,定义m,空格,方法名11.8如何创建一个项目第1步,创建项目要创建一个新项目,可以依次点击菜单【File】→【】→【Projects】,你可以创建下列几种项目类型:◆Qt4ConsoleApplication–控制台应用程序◆Qt4GuiApplication–GUI应用程序(主要是含有界面布局的类型)◆C++Library–C++库这里我们创建一个基于Qt4GuiApplication类型的例子,如图12-30所示,点击【OK】按钮进入下一步。图12-30第1步-创建一个新的项目第2步,设置项目名称和保存位置接下来,如图12-31所示,我们设置项目的名称和路径。注意,项目的名称和路径中尽量不要包含空格和其它特殊的字符,切记!设置完成后,点击【Next】按钮进入下一步。图12-31第2步–设置项目名称和存放位置第3步,选择需要的Qt模块如图12-32所示,在其中罗列的选项中勾选你需要的Qt模块,由于我们创建的是GUI应用程序,因此”QtCoreMoudle”和”QtGuiMoudle”模块是默认必须选择的,其它的可以根据需要选择。选择完后,点击Next按钮进入下一步。图12-32第3步–选择必需的Qt模块第4步,指定类信息如图12-33所示,这里最重要的是指定类的名称,类的头文件、实现文件以及.ui文件的名称会随之改变。还有就是要指定你的类的基类,如QMainWindow、QWidget等,可以从下拉列表框中选择。设置完成后,点击Next按钮进入下一步。图12-33第4步–指定类信息第5步,完成项目的创建如图12-34所示,到了这一步,请仔细屏幕中列出的所有文件是否符合你的要求,如果不符,可以点击Back按钮,回去重新设置。如果确认无误,点击Finish按钮完成项目的创建。图12-34第5步–完成项目的创建12.9实例讲解在本节中,我们以程序textfinder为例,向大家详细讲解使用QtCreator创建应用程序的全过程,我们将使用QtCreatro创建工程和代码,并使用QtDesigner创建用户界面。如果你对如何使用QtDesigner还不太熟悉的话,建议回头看看前几章。这个例子的运行效果如图12-35所示。图12-35程序运行效果12.9.1程序运行内部机理图12-36是笔者画的一个本程序的运行内部机理示意图,从中可以清晰的看到各个组件式是如何配合起来完成程序运行的。图12-36程序的内部机理12.9.2设置环境在前面我们已经讲到,如果你是采用SDK安装的Qt4,那么正常情况下,安装程序已经自动为你设置好了所需的环境。如果你依次点击菜单【Tools】→【】→【Qt4】,却发现没有找到任何正确的Qt版本,那么你需要自行设置Path环境变量,这个步骤与平台相关:◆在Windows和Linux下面:依次点击菜单【Tools】→【】→【Qt4】。◆在MacOSX上面:依次点击菜单【Qt4】→【Preferences】。小贴士:如果你使用VisualStudio编译Qt,再单独安装QtCreator,那么QtCreator中环境变量的设置与VisualStudio中将保持一致。12.9.3创建并组织项目接下来按照上一节所述的步骤创建项目并组织好项目文件。注意这里我们要选择QWidget作为基类。在我们的项目中,应该包含如下文件:◆textfinder.h◆◆◆◆其中,.h和.cpp文件包含了程序运行所必需的基本代码,而.pro文件已经完成了。在接下来的步骤中,我们将使用QtDesigner设计界面,并添加完成功能所必须的代码。11.9.4设计用户界面在你的项目浏览器(ProjectExplorer)中双击,将打开集成的QtDesigner,在里面完成对用户界面的设计,并依照表12-6列出的内容设置各个元素的属性,完成后的情形如图12-37所示。表12-6界面元素属性窗口部件QLabelQLineEditQPushButtonQTextEditQGridLayoutQVBoxLayout名称(objectName)无lineEditfindButtontextEdit无无图12-37界面布局该界面元素的布局方式如下:Keyword标签和旁边的lineEdit以及最右边的Find按钮使用QGridLayout组合,再与下面的textEdit使用QVBoxLayout组合。12.9.5头文件接下来我们看看textfinder.h这个头文件时怎样写的。由于我们的用户界面只有一个,所以决定采用单继承的方式使用.ui文件,这就需要添加一个私有的成员变量:Ui::TextFinder*ui;我们需要添加一个私有的槽函数,以执行查找操作,它是on_findButton_clicked();我们还需要一个私有成员函数loadTextFile(),用来读取并显示我们在文本框中输入的文本文件的内容。以下是头文件中这部分的代码:privateslots:voidon_findButton_clicked();private:Ui::TextFinder*ui;voidloadTextFile();12.9.6实现文件现在我们看看如何书写实现文件,这其中的关键是loadTextFile()方法:voidTextFinder::loadTextFile(){QFileinputFile(":/");(QIODevice::ReadOnly);QTextStreamin(&inputFile);QStringline=l();();ui->textEdit->setPlainText(line);QTextCursorcursor=ui->textEdit->textCursor();sition(QTextCursor::Start,QTextCursor::MoveAnchor,1);}在上面这段代码中,我们首先使用一个QFile类的对象来加载文本文件,并使用QTextStream来读取它的内容,最后使用setPlainText()方法来显示它。在实现文件开头要加入下面的头文件声明:#include
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688893533a181763.html
评论列表(0条)