Qt图形编程基础之:Qt/Embedded开发入门
功能是内建的,不需要额外的代码,但程序员在需要时可以约束工具栏的行为。
使用Qt可以大大简化编程。例如,如果一个菜单项、一个工具栏按钮和一个快捷键都完成同样的动作,那么这个动作只需要一份代码。
Qt还提供消息框和一系列标准对话框,使得程序向用户提问和让用户选择文件、文件夹、字体以及颜色变得更加简单。为了呈现一个消息框或一个标准对话框,只需要用一个使用方便的Qt静态函数的一行的语句。
1.主窗口类
QMainWindow类提供了一个典型应用程序的主窗口框架。
一个主窗口包含了一组标准窗体的集合。主窗口的顶部包含一个菜单栏,它的下方放置着一个工具栏,工具栏可以移动到其他的停靠区域。主窗口允许停靠的位置有顶部、左边、右边和底部。工具栏可以被拖放到一个停靠的位置,从而形成一个浮动的工具面板。主窗口的下方,也就是在底部的停靠位置下方有一个状态栏。主窗口的中间区域可以包含其他的窗体。提示工具和“这是什么”帮助按钮以旁述的方式阐述了用户接口的使用方法。
对于小屏幕的设备,使用Qt图形设计器定义的标准的QWidget模板比使用主窗口类更好一些。典型的模板包含有菜单栏、工具栏,可能没有状态栏(在必要的情况下,可以用任务栏,标题栏来显示状态)。
例如,一个文本编辑器可以把QTextEdit作为中心部件:
QTextEdit*editor=newQTextEdit(mainWindow);
mainWindow->setCentralWidget(editor);
2.菜单类
弹出式菜单QPopupMenu类以垂直列表的方式显示菜单项,它可以是单个的(例如上下文相关菜单),可以以菜单栏的方式出现,或者是别的弹出式菜单的子菜单出现。
每个菜单项可以有一个图标、一个复选框和一个加速器(快捷键),菜单项通常对应一个动作(例如存盘),分隔器通常显示成一条竖线,它用于把一组相关联的动作菜单分离成组。
下面是一个建立包含有New、Open和Exit菜单项的文件菜单的例子。
QPopupMenu*fileMenu=newQPopupMenu(this);
fileMenu->insertItem(New,this,SLOT(newFile()),CTRL+Key_N);
fileMenu->insertItem(Open...,this,SLOT(open()),CTRL+Key_O);
fileMenu->insertSeparator();
fileMenu->insertItem(Exit,qApp,SLOT(quit()),CTRL+Key_Q);
当一个菜单项被选中,和它相关的插槽将被执行。加速器(快捷键)很少在一个没有键盘输入的设备上使用,Qt/Embedded的典型配置并未包含对加速器的支持。上面出现的代码“New”意思是在桌面机器上以“New”的方式显示出来,但是在嵌入式设备中,它只会显示为“New”。
QMenuBar类实现了一个菜单栏,它会自动地设置几何尺寸并在它的父窗体的顶部显示出来,如果父窗体的宽度不够宽以至不能显示一个完整的菜单栏,那么菜单栏将会分为多行显示出来。Qt内置的布局管理能够自动调整菜单栏。
Qt的菜单系统是非常灵活的,菜单项可以被动态使能、失效、添加或者删除。通过子类化QCustomMenuItem,用户可以建立客户化外观和功能的菜单项。
3.工具栏
工具栏可以被移动到中心区域的顶部、底部、左边或右边。任何工具栏都可以拖拽到工具栏区域的外边,作为独立的浮动工具托盘。
QToolButton类实现了具有一个图标,一个3D框架和一个可选标签的工具栏。切换型工具栏按钮具有可以打开或关闭某些特征的功能。其他的则会执行一个命令。可以为活动、关闭、开启等模式,打开或关闭等状态提供不同的图标。如果只提供一个图标,Qt能根据可视化线索自动地辨别状态,例如将禁用的按钮变灰,工具栏按钮也能触发弹出式菜单。
QToolButton通常在QToolBar内并排出现。一个程序可含有任意数量的工具栏并且用户可以自由地移动它们。工具栏可以包括几乎所有部件,例如QComboBox和QSpinBox。
4.旁述
现在的应用主要使用旁述的方式去解释用户接口的用法。Qt提供了两种旁述的方式,即“提示栏”和“这是什么”帮助按钮。
n “提示栏”是小的,通常是黄色的矩形,当光标在窗体的某些位置游动时,它就会自动地出现。它主要用于解释工具栏按钮,特别是那些缺少文字标签说明的工具栏按钮的用途。下面就是如何设置一个“存盘”按钮的提示代码。
QToolTip::add(saveButton,Save);
当提示字符出现之后,还可以在状态栏显示更详细的文字说明。
对于一些没有鼠标的设备(例如那些使用触点输入的设备),就不会出现鼠标的光标在窗体上进行游动,这样就不能激活提示栏。对于这些设备也许就需要使用“这是什么”帮助按钮,或者使用一种状态来表示输入设备
Qt图形编程 Qt Embedded Linux 操作系统 插槽 相关文章:
- Qt图形编程基础之:嵌入式GUI简介(08-13)
- Qt图形编程基础之:实验内容——使用Qt编写“Hello,World”程序(08-13)
- 《嵌入式Linux应用程序开发标准教程》(第2版)(09-30)
- 基于QTE的嵌入式Linux下可视化打印设计(07-30)
- 嵌入式linux应用开发之:初识Qt(03-04)
- U-Boot的编译与移植到QT-S3C44B0X开发板上(03-08)