摘要: 熟悉Visual Basic或者Delphi的开发者初次接触Qt/C++开发时会发现信号-槽原理很难理解,而且他们看不到事件处理器。Qt 4允许他们保留他们习惯的语义,允许这种形式的槽声明: void on_objectname_signalname(); 它们被转换成connect()指令,然后由uic保存在setupUi()里面。顺便提一下,这个命名约定增强了源文件的可读性。 这个函数功能性的关键是静态函数QMetaObject::connectSlotsByName()方法:它需要一个指向一个QObject对象的指针,通过它寻找与名字一致的槽。然后QMetaObject::connectSlotsByName()方法将找到的槽与合适的信号连接。为了做到这一点,它使用了元对象编译器moc生成的元对象的信息。元对象以内省(在Java中被称作反射)的方式使C++获得了理解所有继承自QObject的类的能力。因此,在运行时类“知道”它自己的方法,信号和槽。connectSlotsByName()方法在指针指向的对象和它们的子对象的名字中递归查找,并将各自的信号与它们连接。 阅读全文
posted @ 2010-06-12 12:33 mcxiaoke 阅读(1486) 评论(0) 编辑
摘要: The Book of QT4 翻译 QT程序设计艺术 ---------------------------------------------------------------------------------原名:The Book of QT 4:The Art of Building Qt Applications译名:The Book of QT 4中文版:QT程序设计艺术-----...阅读全文
posted @ 2010-06-01 09:58 mcxiaoke 阅读(1824) 评论(0) 编辑
摘要: 为了检查布局结果,你可以使用Qt设计器窗体菜单上提供的预览功能,如果你想,通过预览子菜单,你甚至可以以其它的样式查看对话框。图3.8显示了Linux下的预览。奇趣定义了Plastique作为默认样式,这个样式与KDE 3的默认样式相似。在Mac OS X上,Qt用户使用原生的Aqua样式,此样式使用Mac OS X的绘图规范。同样地,Windows XP样式使用Windows APIs绘制样式。因此,Aqua样式和XP样式仅仅在各自的操作系统上可用。阅读全文
posted @ 2010-05-27 13:36 mcxiaoke 阅读(1466) 评论(1) 编辑
摘要: 以QObject为基础的类都有一个特定的属性,它可以使用setProperty()设置,使用property()查询。用户界面信息的例子可以用包括大小,标签,格式详情,帮助文本和很多其它的东西的属性表示。 图3.5:属性编辑器按照类第一次定义的样子(或者是类本身,或者是它的一个父类)分类显示它的每一个属性。 阅读全文
posted @ 2010-05-26 08:49 mcxiaoke 阅读(1257) 评论(0) 编辑
摘要: 虽然手工编写像第二章的转换器那样的简单的图形用户界面不会有太多问题,我们仍然需要一个图形界面设计工具,尤其是在设计要放置许多GUI元素的对话框时。Qt提供了Qt设计器工具。阅读全文
posted @ 2010-05-24 12:50 mcxiaoke 阅读(1545) 评论(0) 编辑
摘要: The Book of QT4 翻译QT程序设计艺术 ---------------------------------------------------------------------------------原名:The Book of QT 4:The Art of Building Qt Applications译名:The Book of QT 4中文版:QT程序设计艺术------...阅读全文
posted @ 2010-05-21 09:10 mcxiaoke 阅读(1484) 评论(0) 编辑
摘要: 除开改良了的布局,这个对话框在下列几个方面表现的并不完美:目前窗口标题显示的是程序的名字byteConverter。一些东西可以更具描述性。退出按钮应该成为对话框的默认按钮,默认按钮即使即使当前没有键盘焦点,也可以由回车键激活。大部分窗口部件以一种特殊的样式高亮默认按钮。现在你可以在行编辑器中输入任何数字。我们应该限制用户只能输入正确的值,即十进制数字智能在0到255之间,十六进制数字最多为两位数,二进制数字最多为8位数。 我们可以通过添加下面几行解决这些问题:阅读全文
posted @ 2010-05-20 08:43 mcxiaoke 阅读(1303) 评论(0) 编辑
摘要: 现在你对Qt有一个大概的了解了,我们将转向更实际的例子,学习这些类如何一起工作。我们的第一个扩展程序将在十进制,十六进制和二进制标记法之间转换数字。如图2.1所示。 这个程序的使用者可以在任何一个输入框中输入任何单个字节的数字(从0到255).此程序将更新另外两个行编辑器的数字为转换后的值。阅读全文
posted @ 2010-05-19 08:56 mcxiaoke 阅读(1293) 评论(0) 编辑
摘要: 在Qt编程中,推荐你将HTML格式的文档作为案头必备参考,尤其因为详细描述了所有的Qt类。当阅读本书时经常查看不同的例子中使用的类对应的文档,你也可能发现用处很大。 当Qt助手启动时,程序自动载入起始页(page doc/html/index.html)[图1.18];它也可以通过任何网页浏览器查看,还有在线版本可用。除了已经提到的Qt类的精确描述,文档还包括引导教程;和信号-槽机制,布局,SQL,网络,XML,OpenGL模块的概述;以及工具和实用程序的介绍。 阅读全文
posted @ 2010-05-18 08:53 mcxiaoke 阅读(1427) 评论(0) 编辑
摘要: 实际上,QT不仅仅是一个巨大的程序库,而是7个程序库,还包括许多使用工具,qmake是其中的一个。 1.5.1 QT程序库 今天,术语GUI工具包代表的东西的用途不再仅仅是系统提供的那么一个小部分(GUI界面)。尤其是QT,包含了用于应用程序开发的许多方面的扩展类。其中很多类与程序图形界面相关,但也有很多类涉及到网络编程,OpenGL支持,XML开发等方面。广泛的用途依赖于QT类的平台独立性:除了很少的例外,在所有的操作系统上,所有的类都可用,并且同样的类具有同样的方法和行为。阅读全文
posted @ 2010-05-17 12:09 mcxiaoke 阅读(2167) 评论(7) 编辑