给初学Qt者小TIP.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
给初学Qt者的小TIP 1、Hello, Qt! 我们以一个非常简单的 Qt 程序开始 Qt 的学习。我们首先一行行的分析代码,然后我 们将会看到怎样编译和运行这个程序。 1 #include QApplication 2 #include QLabel 3 int main (int argc, char *argv []) 4 { 5 QApplication app (argc, argv); 6 QLabel *label = new QLabel (Hello Qt!); 7 label-show (); 8 return app. exec (); 9 } 第 1 行和第 2 行包含了两个类的定义:QApplication 和 QLabel。对于每一个 Qt 的类, 都会有一个同名的头文件,头文件里包含了这个类的定义。因此,你如果在程序中使用了一 个类的对象,那么在程序中就必须包括这个头文件。 第 3 行是程序的入口。几乎在使用 Qt 的所有情况下,main()函数只需要在把控制权转 交给 Qt 库之前执行一些初始化,然后 Qt 库通过事件来向程序告知用户的行为。argc 是命 令行变量的数量,argv 是命令行变量的数组。这是一个 C/C++特征。它不是 Qt 专有的,无 论如何 Qt 需要处理这些变量 第 5 行定义了一个 QApplication 对象 App。QApplication 管理了各种各样的应用程序的 广泛资源,比如默认的字体和光标。 App 的创建需要 argc 和 argv 是因为 Qt 支持一些自己的 命令行参数。在每一个使用 Qt 的应用程序中都必须使用一个 QApplication 对象,并且在任 何 Qt 的窗口系统部件被使用之前创建此对象是必须的。App 在这里被创建并且处理后面的 命令行变量(比如在 X 窗口下的-display)。请注意,所有被 Qt 识别的命令行参数都会从 argv 中被移除(并且 argc 也因此而减少)。 第 6 行创建了一个 QLabel 窗口部件(widget) ,用来显示“Hello,Qt!”。在 Qt 和 Unix 的术语中,一个窗口部件就是用户界面中一个可见的元素,它相当于 Windows 术语中的“容 器”加上“控制器”。按钮(Button)、菜单(menu)、滚动条(scroll bars)和框架(frame) 都是窗口部件的例子。窗口部件可以包含其它的窗口部件。例如,一个应用程序界面通常就 是一个包含了 QMenuBar,一些 QToolBar,一个 QStatusBar 和其它的一些部件的窗口。绝大 多数应用程序使用一个 QMainWindow 或者一个 QDialog 作为程序界面,但是 Qt 允许任何 窗口部件成为窗口。在这个例子中,QLabel 窗口部件就是作为应用程序主窗口的。 第 7 行使我们创建的 QLabel 可见。当窗口部件被创建的时候,它总是隐藏的,必须调 用 show()来使它可见。通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就不 会出现闪烁的情况。 第 8 行就是 main()将控制权交给 Qt。在这里,程序进入了事件循环。事件循环是一种 stand-by 的模式,程序会等待用户的动作(比如按下鼠标或者是键盘)。用户的动作将会产 生程序可以做出反应的事件(也被称为“消息”) 。程序对这些事件的反应通常是执行一个或 几个函数。 为了简单起见,我们没有在 main()函数的结尾处调用 delete 来删除 QLabel 对象。这种 内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存堆。 下面我们来编译这个程序。建立一个名为 hello 的目录,在目录下建立一个名为 hello.cpp 的 c++源文件,将上面的代码写入文件中。 运行“开始?程序?Qt by Trolltech?Qt Command Prompt”。 在命令行模式下,切换目录到 hello 下,然后输入命令:qmake –project。这个命令将 产生一个依赖于工作平台的工程文件(hello.pro)。 再输入命令:qmake hello.pro。这个命令通过工程文件产生一个可以在特定工作平台 上使用的 makefile。 最后输入命令:make 来产生应用程序。运行这个程序,可以得到如下的程序界面。 Qt 也支持 XML。我们可以把程序的第 6 行替换成下面的语句: QLabel *label = new QLabel (h2iHello/i font color=redQt! /font/h2); 重新编译程序,我们发现界面拥有了简单的 HTML 风格。如下图: 2、调用退出 第二个例子展示了如何使

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档