微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Qt图形编程基础之:Qt/Embedded开发入门

Qt图形编程基础之:Qt/Embedded开发入门

时间:09-13 来源:互联网 点击:

功能是内建的,不需要额外的代码,但程序员在需要时可以约束工具栏的行为。

使用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);

当提示字符出现之后,还可以在状态栏显示更详细的文字说明。

对于一些没有鼠标的设备(例如那些使用触点输入的设备),就不会出现鼠标的光标在窗体上进行游动,这样就不能激活提示栏。对于这些设备也许就需要使用“这是什么”帮助按钮,或者使用一种状态来表示输入设备

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top