当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]

赞助商链接



  本文“<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

下面来逐行注释一下前面的那个Hello, world!程序,固然很简单,但却可以对Qt程序的构造有一个清楚的熟习.目前再把代码贴过来:

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello, world!");
label->show();
return app.exec();
}

第1行和第2行就是需求引入的头文件.和普通的C++程序没有什么两样,假如要利用某个组件,就必必要引入呼应的头文件,这近似于Java的import机制.值得阐明的是,Qt中头文件和类名是一致的.也就是说,假如你要利用某个类的话,它的类名就是它的头文件名.

第3行是空行 :)

第4行是main函数函数头.这与普通的C++程序没有什么两样,学过C++的都懂得.因此你可以看到,实际上,Qt完好通过普通的main函数进入,这差别于wxWidgets,因为wxWidgets的Hello, world需求你担当它的一个wxApp类,并覆盖它的wxApp::OnInit办法,系统会自动将OnInit编译成进口函数.不过在Qt中,就不需求这些了.

第5行,噢噢,大括号…

第6行,成立一个QApplication对象.这个对象用于管理利用程序级别的资源.QApplication的构造函数要求两个参数,辨别来自main的那两个参数,因此,Qt在一定程度上是支持号令行参数的.

第7行,成立一个QLabel对象,并且可以显示Hello, world!字符串.和其他库的Label控件一样,这是用来显示文本的.在Qt中,这被称为一个widget(翻译出来是小东西,不过这个翻译并不好…),它平等于Windows技术里面的控件(controls)和容器(containers).也就是说,widget可以安排其他的 widget,就像Swing的组件.大大都Qt程序利用QMainWindow大概QDialog作为顶级组件,但Qt并不强迫要求这点.在这个例子中,顶级组件就是一个QLabel.

第8行,使这个label可见.组件成立出来之后普通是不可见的,要求我们手动的使它们可见.这样,在成立出组建之后我们便可以对它们举行各种定制,以避免呈现之后在屏幕上面会有闪耀.

第9行,将利用程序的掌握权移交给Qt.这时,程序的事件循环就开始了,也就是说,这时可以呼应你发出的各种事件了.这近似于gtk+最后的一行gtk_main().

第10行,大括号……程序完毕了.

注意,我们并没有利用delete去删除成立的QLabel,因为在程序完毕后操作系统会回收这个空间——这只是因为这个QLabel占用的内存对比小,但有时刻这么做会惹起麻烦的,分外是在大程序中,因此必须当心.

好了,程序注释完了.按照正常的流程,下面应当编译.前面也提过,Qt的编译不能利用普通的make,而必须先利用qmake举行预编译.所以,第一步应当是在工程目录下利用

qmake -project

号令成立.pro文件(比方说是叫helloworld.pro).然后再在.pro文件目录下利用

qmake helloworld.pro (make)

大概

qmake -tp vc helloworld.pro (nmake)

生成makefile,然后才能调用make大概是nmake举行编译.不过因为我们利用的是IDE,所以这些步骤就不需求我们手动完成了.

值得阐明一点的是,这个qmake可以生成尺度的makefile文件,因此完好可以操纵qmake自动生成makefile——这是题外话.

好了,下面改正一下源代码,把QLabel的成立一句改成

QLabel *label = new QLabel("<h2><font color='red'>Hello</font>, world!<h2>");

运行一下:

同Swing的JLabel一样,Qt也是支持HTML解析的.

好了,这个Hello, world就说到这里!明确一下Qt的程序构造,在一个Qt源代码中,一下两条语句是必不可少的:

QApplication app(argc, argv);
//...
return app.exec();

出处: http://devbean.blog.51cto.com/448512/194137


  以上是“<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .