好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

qtcreator快速入门第5章应用程序主窗口剖析.ppt

49页
  • 卖家[上传人]:今***
  • 文档编号:106639066
  • 上传时间:2019-10-15
  • 文档格式:PPT
  • 文档大小:1.52MB
  • / 49 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 《Qt Creator快速入门》第2版,第5章 应用程序主窗口,,(3课时),这一章开始接触应用程序主窗口的相关内容对于日常见到的应用程序而言,它们中的许多都是基于主窗口的,主窗口中包含了菜单栏、工具栏、状态栏和中心区域等本章会详细介绍主窗口的每一个部分,还会涉及到资源管理、富文本处理、拖放操作和文档打印等相关内容 在Qt中提供了以QMainWindow类为核心的主窗口框架,它包含了众多相关的类:,主 要 内 容,5.1 主窗口框架(第1课时) 5.2 富文本处理(第2课时) 5.3 拖放操作(第3课时) 5.4 打印文档(第3课时) 5.5 小结(第3课时),5.1 主窗口框架,菜单栏和工具栏 使用资源系统 中心部件 Dock部件 状态栏 自定义菜单,主窗口为建立应用程序用户界面提供了一个框架,Qt提供了QMainWindow和与其相关的一些类来进行主窗口的管理QMainWindow类拥有自己的布局:,①菜单栏(QMenuBar)菜单栏包含了一个下拉菜单项的列表,这些菜单项由QAction动作类实现菜单栏位于主窗口的顶部,一个主窗口只能有一个菜单栏②工具栏(QToolBar)工具栏一般用于显示一些常用的菜单项目,它也可以插入其他窗口部件,并且工具栏是可以移动的。

      一个主窗口可以拥有多个工具栏③中心部件(Central Widget)在主窗口的中心区域可以放入一个窗口部件作为中心部件,它是应用程序的主要功能实现区域一个主窗口只能拥有一个中心部件④Dock部件(QDockWidget)Dock部件常被称为停靠窗口,因为它可以停靠在中心部件的四周它用来放置一些部件来实现一些功能,就像个工具箱一样一个主窗口可以拥有多个Dock部件⑤状态栏(QStatusBar)状态栏用于显示程序的一些状态信息,它在主窗口的最底部一个主窗口只能拥有一个状态栏在设计器中给菜单栏、工具栏添加动作,在Qt Creator中双击项目中的.ui文件进入设计模式 添加菜单,双击左上角的“在这里输入”,修改为“文件(&F)”,这里要使用英文半角的括号,“&F”被称为加速键,表明程序运行时,可以按下Alt+F键来激活该菜单修改完成后,按下回车键,并在弹出的下拉菜单中,将第一项改为“新建文件(&N)”并按下回车键 这时可以看到在下面的Action编辑器中已经有了“新建文件”动作 在这里用鼠标点击该动作,将其拖入菜单栏下面的工具栏中菜单栏,QMenuBar类提供了一个水平的菜单栏,在QMainWindow中可以直接获取它的默认存在的菜单栏,向其中添加QMenu类型的菜单对象,然后向弹出菜单中添加QAction类型的动作对象。

      在QMenu中还提供了间隔器,可以在设计器中向添加菜单那样直接添加间隔器,或者在代码中使用addSeparator()函数来添加,它是一条水平线,可以将菜单分成几组,使得布局很整齐 在应用程序中很多普通的命令都是通过菜单来实现的,而我们也希望能将这些菜单命令放到工具栏中,以方便使用QAction就是这样一种命令动作,它可以同时放在菜单和工具栏中一个QAction动作包含了一个图标,一个菜单显示文本,一个快捷键,一个状态栏显示文本,一个“What’s This?”显示文本和一个工具提示文本这些都可以在构建QAction类对象时在构造函数中指定 另外还可以设置QAction的checkable属性,如果指定这个动作的checkable为true,那么当选中这个菜单时就会在它的前面显示“√”之类的表示选中状态的符号,如果该菜单有图标,那么就会用线框将图标围住,用来表示该动作被选中了代码方式添加菜单,// 添加编辑菜单 QMenu *editMenu = ui-menuBar-addMenu(tr(“编辑(,工具栏,工具栏QToolBar类提供了一个包含了一组控件的可以移动的面板在上面已经看到可以将QAction对象添加到工具栏中,它默认只是显示一个动作的图标,这个可以在QToolBar的属性栏中进行更改。

      在设计器中可以查看QToolBar的属性栏,其中toolButtonStyle属性设置图标和相应文本的显示及其相对位置等;movabel属性设置状态栏是否可以移动;allowedArea设置允许停靠的位置;iconsize属性设置图标的大小;floatable属性设置是否可以悬浮在工具栏中添加部件,QToolButton *toolBtn = new QToolButton(this); // 创建QToolButton toolBtn-setText(tr(“颜色“)); QMenu *colorMenu = new QMenu(this); // 创建一个菜单 colorMenu-addAction(tr(“红色“)); colorMenu-addAction(tr(“绿色“)); toolBtn-setMenu(colorMenu); // 添加菜单 toolBtn-setPopupMode(QToolButton::MenuButtonPopup); // 设置弹出模式 ui-mainToolBar-addWidget(toolBtn); // 向工具栏添加QToolButton按钮 QSpinBox *spinBox = new QSpinBox(this); // 创建QSpinBox ui-mainToolBar-addWidget(spinBox); // 向工具栏添加QSpinBox部件,资源系统,Qt资源系统是一个独立于平台的(跟使用的操作系统无关)用于在可执行文件中存储二进制文件的机制。

      可以让需要的文件(图片、文本等)包含到程序编程生成的可执行文件(例如exe文件)中 保证了程序中使用的文件不会丢失、不会因为存放路径而导致程序运行错误在Qt Creator中添加资源,第一步,添加Qt资源文件往项目中添加新文件,选择Qt分类中的Qt资源文件,文件名称改为“myImage”,其他选项默认即可 第二步,添加资源建立好资源文件后会默认进入资源管理界面,就是新建的myImage.qrc文件中现在先到项目文件夹myMainWindow中新建一个名为“images”的文件夹,并在其中放入两张图标图片,比如这里放入了一个“new.png”和一个“open.png”图片注意:Qt的资源系统要求资源文件必须放在与qrc文件同级或子级目录下,如果放在其他地方,当添加资源时会提示将文件复制到有效的位置 然后回到Qt Creator中,在资源管理界面,按下“添加”按钮,选择“添加前缀”,然后将属性栏中的前缀改为“/myImage”,再点击“添加”按钮,选择“添加文件”,在弹出的对话框中进入到前面新建的images文件夹中,选中那两张图片,点击打开即可这时myImage.qrc文件中就出现了添加的图片的列表。

      最后按下Ctrl+S快捷键,保存对文件的修改(注意:这一点很重要,如果没有保存,在下面使用图片时将看不到图片)第三步,使用图片在设计模式Action编辑器中双击“新建文件”动作,这时会弹出编辑动作对话框在其中将对象名称改为“action_New”,工具提示改为“新建文件”,然后按下图标后面的按钮,进入选择资源界面 第一次进入该界面还没有显示可用的资源,需要按下左上角的重新加载绿色箭头图标,这时图片资源就显示出来了这里选择new.png图片,然后按下确定按钮 如果在编写代码时使用new.png图片,那么就可以将其路径指定为“:/myImage/images/new.png”, 前缀“/myImage”是添加资源时手动设置的资源文件介绍,在使用资源时添加的qrc资源文件其实是一个XML格式的文本文件,进入编辑模式,在myImage.qrc文件上点击鼠标右键,选择“用…打开”→“Plain Text Editor”,这时就会看到myImage.qrc的内容如下: images/new.png images/open.png 在这里指明了文件类型为RCC,表明是Qt资源文件然后是资源前缀,在下面罗列了添加的图片的路径。

      当往项目中添加了一个资源文件时,会自动往工程文件myMainWindow.pro中添加代码: RESOURCES += \ myImage.qrc 这表明项目中使用了资源文件myImage.qrc中心部件,在主窗口的中心区域可以放置一个中心部件,它一般是一个编辑器或者浏览器这里支持单文档部件,也支持多文档部件一般的,会在这里放置一个部件,然后使用布局管理器使其充满整个中心区域,并可以随着窗口的大小变化而改变大小例如在设计模式中,往中心区域拖入一个Text Edit,然后点击界面,按下Ctrl+G使其处于一个栅格布局中 效果如下Dock部件,QDockWidget类提供了这样一个部件,它可以停靠在QMainWindow中也可以悬浮起来作为桌面顶级窗口,我们称它为Dock部件或者停靠窗口Dock部件一般用于存放其他一些部件来实现一些特殊功能,就像一个工具箱一样它在主窗口中可以停靠在中心部件的四周,也可以悬浮起来,被拖动到任意的地方,还可以被关闭或隐藏起来一个Dock部件包含一个标题栏和一个内容区域,可以向Dock部件中放入任何部件 例如:在设计模式中向中心区域拖入一个Dock Widget部件,然后再向Dock中随意拖入几个部件,比如这里拖入一个Push Button和一个Font Combo Box。

      然后在dockWidget的属性栏中更改其windowTitle为“工具箱”状态栏,QStatusBar类提供了一个水平条,用来显示状态信息QMainWindow中默认提供了一个状态栏 状态信息可以被分为三类:临时信息,如一般的提示信息;正常信息,如显示页数和行号;永久信息,如显示版本号或者日期可以使用showMessage()函数来显示一个临时消息,它会出现在状态栏的最左边一般用addWidget()函数添加一个QLabel到状态栏上用于显示正常信息,它会生成到状态栏的最左边,可能会被临时消息所掩盖如果要显示永久信息,要使用addPermanentWidget()函数来添加一个如QLabel一样的可以显示信息的部件,它会生成在状态栏的最右端,不会被临时消息所掩盖 在状态栏的最右端,还有一个QSizeGrip部件,用来调整窗口的大小,可以使用setSizeGripEnabled()函数来禁用它目前的设计器中还不支持直接向状态栏中拖放部件,所以需要使用代码来生成例如: // 显示临时消息,显示2000毫秒即2秒钟 ui-statusBar-showMessage(tr(“欢迎使用多文档编辑器“), 2000); // 创建标签,设置标签样式并显示信息,将其以永久部件的形式添加到状态栏 QLabel *permanent = new QLabel(this); permanent-setFrameStyle(QFrame::Box | QFrame::Sunken); permanent-setText(““); ui-statusBar-addPermanentWidget(permanent); 此时运行程序,可以发现“欢迎使用多文档编辑器”字符串在显示一会儿后就自动消失了,而“”一直显示在状态栏最右端。

      自定义菜单,Qt中的QWidgetAction类可以实现自定义菜单的功能为了实现自定义菜单,需要新建一个类,它继承自QWidgetAction类,并且在其中重新实现createWidget()函数 自学内容:写一个程序,实现了这样一个菜单:它包含一个标签和一个行编辑器,可以在行编辑器中输入字符串,然后按下回车键,就可以自动将字符串输入到中心部件文本编辑器中5.2 富文本处理,富文本(R。

      点击阅读更多内容
      相关文档
      新版中华民族共同体概论课件第五讲大一统与中华民族初步形成(秦汉时期)-2025年版.pptx 2023版《思想道德与法治》教学设计-绪论.docx 新版中华民族共同体概论课件第一讲中华民族共同体基础理论-2025年版.pptx 思想道德与法治(2023年版)资料第四章 明确价值要求 践行价值准则 - 副本.docx 2023版教学设计第五章 遵守道德规范 锤炼道德品格思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第二讲树立正确的中华民族历史观-2025年版.pptx 第六讲践行多边主义完善全球治理讲稿-2025秋形势与政策讲稿.docx 2023版教学设计第四章 明确价值要求 践行价值准则思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第十六讲文明新路与人类命运共同体-2025年版.pptx 第四讲阔步迈向农业强国讲稿-2025秋形势与政策讲稿.docx 2023版第一章 领悟人生真谛 把握人生方向教学设计思想道德与法治2023版本课件.docx 2023版教学设计第二章 追求远大理想 坚定崇高信念思想道德与法治2023版本课件.docx 微机原理及单片机应用技术概述.ppt 塑料成型工艺与模具结构-塑料成型工艺基础.ppt 市场营销学(第2版)市场营销管理.ppt 税收筹划(第2版)课件:跨国税收筹划问题.ppt 微机原理及单片机应用技术-初识STM32.ppt 政府与非营利组织会计(第7版)课件:政府会计的基本概念.pptx 政府与非营利组织会计(第7版)课件:政府单位会计概述.pptx 银行会计课件:无形资产与其他资产的核算.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.