内置控件和对话框类(Built-in Widget and Dialog Classes)

来源:互联网 发布:drops软件 编辑:程序博客网 时间:2024/04/28 02:30
Qt提供了一个完整的内置控件和常用对话框的集合,以满足大多数情形的需要。在这一节中,我们将展示几乎所有它们的截图。而一些特殊的控件将在以后介绍:我们将在第三章中介绍诸如QMenuBarQToolBarQStatusBar之类的主窗口控件,在第六章中介绍诸如QSplictterQScrollArea之类的布局相关的控件。本书中的例子中使用了大多数的内置控件和对话框。在图2.172.26的截图,展示的都是使用Plastique风格的控件。

jpg
2008-11-26 11:06 上传
下载附件(16.98 KB)
jpg

图2.17. Qt的按钮控件


jpg
2008-11-26 11:06 上传
下载附件(20.17 KB)
jpg

图2.18. Qt的单页容器控件


jpg
2008-11-26 11:06 上传
下载附件(17.47 KB)
jpg

图2.19. Qt的多页容器控件


jpg
2008-11-26 11:06 上传
下载附件(42.69 KB)
jpg

图2.20. Qt的列表视图控件


jpg
2008-11-26 11:06 上传
下载附件(41.25 KB)
jpg

图2.21. Qt的显示控件


jpg
2008-11-26 11:06 上传
下载附件(43.03 KB)
jpg

图2.22. Qt的输入控件


jpg
2008-11-26 11:06 上传
下载附件(35.32 KB)
jpg

图2.23. Qt的反馈对话框


jpg
2008-11-26 11:06 上传
下载附件(29.99 KB)
jpg

图2.24. Qt的颜色和字体对话框


jpg
2008-11-26 11:06 上传
下载附件(35.16 KB)
jpg

图2.25. Qt的文件和打印对话框


jpg
2008-11-26 11:06 上传
下载附件(26.63 KB)
jpg

图2.26. Qt的向导对话框



Qt提供了四种类型的按钮:QPushButtonQToolButtonQcheckBoxQRadioButton,如图2.17所示。QPushButtonQToolButton最常用来被点击时触发一个事件,但是它们也可以作切换按钮(点击后显示为按下状态,再点击恢复原来状态)。QCheckBox能被用做独立的开关选项,而QRadioButton之间正常情况下相互排斥。

Qt的容器控件是可以包含其它控件的控件,如图2.182.19所示。QFrame也可以独立使用,用来简单地画直线,或作为其它控件类的基类,如QToolBoxQlabel

QTabWidgetQToolBox是多页控件。每个页面都是一个子控件,从0开始编号。对于QTabWidget,形状和大小都可以设置。

列表视图控件,如图2.20所示,被优化来处理数量大的数据,它经常要使用到滚动条。滚动条机制是在QAbstractScrollArea中实现的,它是列表视图类和其它可滚动控件类的基类。

Qt类库包含了一个富文本引擎,它可以被用来显示和编辑有格式的文本。这种引擎支持字体格式、文本排列、列表、表格、图片以及超链接。富文本文档可以通过元素或用HTML文本格式来创建可编程的有文法规则的元素。这种引擎提供了严格的HTML标记和CSS属性的支持,相关文档参看http://doc.trolltech.com/4.3/richtext-html-subset.html

Qt提供了一些纯粹用来显示信息的控件,如图2.21QLabel是它们中最重要的,它可以用来显示普通文本、HTML和图片。

QTextBrowserQTextEdit的一个只读子类,它可以显示有格式的文本。这个类相对于QLabel,是处理大型有格式的文本文档的首选,因为它能在需要时自动显示滚动条,同时还提供了对键盘和鼠标事件的广泛支持,而这些是QLabel无法比拟的。Qt Assistant 4.3正是使用了QTextBrowser来为用户显示文档的。

Qt提供了多种数据输入控件,如图2.22。QLineEdit可以使用输入掩码和验证器中的之一或全部,来限制输入。QTextEditQAbstractScrollArea的一个子类,可用于处理数据量大的文本。QTextEdit可以设置为编辑普通文本或富文本。在编辑富文本时,它可以显示所有Qt富文本引擎支持的元素。QLineEditQTextEdit完全地和剪贴板整合在了一起。

Qt提供了一个常用对话框的标准集合,如图2.242.25,这些对话框大大方便了用户选择颜色、字体、文件或者打印文本。

在Windows和Mac OS X中,Qt会尽可能的使用本地对话框,而不是Qt自己的常用对话框。选择颜色时也可以使用Qt解决方案中的颜色选择控件,而选择字体可以使用Qt内置的CFontComboBox

最后,QWizard提供了一个框架来创建向导(在Mac OS X也叫做助手)。向导对于那些用户很难记住的,复杂或罕见的任务是非常有用的。图2.26展示了一个向导的例子。

Qt内置控件和常用对话框提供了很多可以直接使用的功能。很多特殊要求可以通过设置控件属性,或者连接信号和槽并在槽中实现自定义行为的方式来实现。

如果Qt提供的控件或常用对话框中没有一个是适合的,也许可以使用一个Qt解决方案,或者还可以使用商业或非商业的第三方控件。Qt解决方案提供了很多附加控件,其中包括各种颜色选择器、拇指旋轮控件、饼状菜单、和属性浏览器、除此之外还有复制对话框。

 

 

 

http://bbs.mf999.com/forum.php?mod=viewthread&tid=1161

有的时候,用户需要从零开始新建一个自定义控件。在Qt中,这很容易实现。自定义控件和Qt内置控件使用的是相同的平台无关性绘制的函数。自定义控件设置可以和Qt Designer整合起来,这样就可以和Qt内置函数一样使用了。我们将在第5章中介绍如何创建自定义控件