⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qt教程一 —— 第一章:hello, world!.htm

📁 嵌入式QT开发系列文档
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0061)http://www.qtopia.org.cn/doc/qiliang.net/qt/tutorial1-01.html -->
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-win-commercial-3.0.5/doc/tutorial.doc:80 --><HTML><HEAD><TITLE>Qt教程一 —— 第一章:Hello, World!</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content=Cavendish name=Translator>
<META content=http://www.qiliang.net/qt name="Qt zh_CN Documents Website">
<STYLE type=text/css>H3.fn {
	MARGIN-LEFT: 1cm; TEXT-INDENT: -1cm
}
SPAN.fn {
	MARGIN-LEFT: 1cm; TEXT-INDENT: -1cm
}
A:link {
	COLOR: #004faf; TEXT-DECORATION: none
}
A:visited {
	COLOR: #672967; TEXT-DECORATION: none
}
BODY {
	BACKGROUND: #ffffff; COLOR: black; FONT-FAMILY: "Times New Roman"
}
</STYLE>

<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR bgColor=#e5e5e5>
    <TD vAlign=center><A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/index.html"><FONT 
      color=#004faf>主页</FONT></A> | <A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/classes.html"><FONT 
      color=#004faf>所有的类</FONT></A> | <A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/mainclasses.html"><FONT 
      color=#004faf>主要的类</FONT></A> | <A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/annotated.html"><FONT 
      color=#004faf>注释的类</FONT></A> | <A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/groups.html"><FONT 
      color=#004faf>分组的类</FONT></A> | <A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/functions.html"><FONT 
      color=#004faf>函数</FONT></A> </TD>
    <TD vAlign=center align=right><IMG height=32 
      src="Qt教程一 —— 第一章:Hello, World!.files/logo32.png" width=64 align=right 
      border=0></TD></TR></TBODY></TABLE>
<H1 align=center>Qt教程一 —— 第一章:Hello, World!</H1>
<P>
<CENTER><IMG alt="Screenshot of tutorial one" 
src="Qt教程一 —— 第一章:Hello, World!.files/t1.png"></CENTER>
<P>第一个程序是一个简单的Hello World例子。它只包含你建立和运行Qt应用程序所需要的最少的代码。上面的图片是这个程序的快照。 
<P><PRE>/****************************************************************
**
** Qt教程一 - 2
**
****************************************************************/

#include &lt;<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication-h.html">qapplication.h</A>&gt;
#include &lt;<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpushbutton-h.html">qpushbutton.h</A>&gt;


int main( int argc, char **argv )
{
    <A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html">QApplication</A> a( argc, argv );

    <A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpushbutton.html">QPushButton</A> hello( "Hello world!", 0 );
    hello.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qwidget.html#resize">resize</A>( 100, 30 );

    a.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#setMainWidget">setMainWidget</A>( &amp;hello );
    hello.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qwidget.html#show">show</A>();
    return a.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#exec">exec</A>();
}
</PRE>
<P>
<H2>一行一行地解说 </H2><A name=1></A>
<P><PRE>    #include &lt;<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication-h.html">qapplication.h</A>&gt;
</PRE>
<P>这一行包含了<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html">QApplication</A>类的定义。在每一个使用Qt的应用程序中都必须使用一个QApplication对象。QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。 

<P><PRE>    #include &lt;<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpushbutton-h.html">qpushbutton.h</A>&gt;
</PRE>
<P>这一行包含了<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpushbutton.html">QPushButton</A>类的定义。<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/hierarchy.html">参考文档</A>的文件的最上部分提到了使用哪个类就必须包含哪个头文件的说明。 

<P>QPushButton是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。它管理自己的观感,就像其它每一个<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qwidget.html">QWidget</A>。一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#setStyle">观感</A>和它的许多主要的属性(比如颜色),还有这个窗口部件的内容。一个QPushButton可以显示一段文本或者一个<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpixmap.html">QPixmap</A>。 
<P><PRE>    int main( int argc, char **argv )
    {
</PRE>
<P>main()函数是程序的入口。几乎在使用Qt的所有情况下,main()只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。 

<P><TT>argc</TT>是命令行变量的数量,<TT>argv</TT>是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量(请看下面)。 

<P><PRE>        <A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html">QApplication</A> a( argc, argv );
</PRE>
<P><TT>a</TT>是这个程序的<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html">QApplication</A>。它在这里被创建并且处理这些命令行变量(比如在X窗口下的-display)。请注意,所有被Qt识别的命令行参数都会从<TT>argv</TT>中被移除(并且<TT>argc</TT>也因此而减少)。关于细节请看<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#argv">QApplication::argv</A>()文档。 

<P><STRONG>注意:</STRONG>在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。 
<P><PRE>        <A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qpushbutton.html">QPushButton</A> hello( "Hello world!", 0 );
</PRE>
<P>这里,在QApplication<EM>之后</EM>,接着的是第一个窗口系统代码:一个按钮被创建了。 
<P>这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定0为它的父窗口,在这个父窗口中按钮被定位)。 
<P><PRE>    <A name=x2217></A>    hello.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qwidget.html#resize">resize</A>( 100, 30 );
</PRE>
<P>这个按酒被设置成100像素宽,30像素高(加上窗口系统边框)。在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。 
<P><PRE>    <A name=x2216></A>    a.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#setMainWidget">setMainWidget</A>( &amp;hello );
</PRE>
<P>这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。 
<P>你不用必须设置一个主窗口部件,但绝大多数程序都有一个。 
<P><PRE>    <A name=x2218></A>    hello.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qwidget.html#show">show</A>();
</PRE>
<P>当你创建一个窗口部件的时候,它是不可见的。你必须调用show()来使它变为可见的。 
<P><PRE>    <A name=x2215></A>    return a.<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qapplication.html#exec">exec</A>();
</PRE>
<P>这里就是main()把控制转交给Qt,并且当应用程序退出的时候exec()就会返回。 
<P>在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。 
<P><PRE>    }
</PRE>
<P>你现在可以试着编译和运行这个程序了。 
<P><A name=compiling></A>
<H2>编译 </H2><A name=2></A>
<P>编译一个C++应用程序,你需要创建一个makefile。创建一个Qt的makefile的最容易的方法是使用Qt提供的连编工具<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qmake-manual.html">qmake</A>。如果你已经把<TT>main.cpp</TT>保存到它自己的目录了,你所要做的就是这些: 
<PRE>qmake -project
qmake
</PRE>
<P>第一个命令调用<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/qmake-manual.html">qmake</A>来生成一个<TT>.pro</TT>(项目)文件。第二个命令根据这个项目文件来生成一个(系统相关的)makefile。你现在可以输入<TT>make</TT>(或者<TT>nmake</TT>,如果你使用Visual 
Studio),然后运行你的第一个Qt应用程序! 
<P>
<H2>行为 </H2><A name=3></A>
<P>当你运行它的时候,你就会看到一个被单一按钮充满的小窗口,在它上面你可以读到著名的词:Hellow World! 
<P>
<H2>练习 </H2><A name=4></A>
<P>试着改变窗口的大小。按下按钮。如果你在X窗口下运行,使用-geometry选项(比如,<TT>-geometry 
100x200+10+20</TT>)来运行这个程序。 
<P>现在你可以进行<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/tutorial1-02.html">第二章</A>了。 
<P>[<A 
href="http://www.qtopia.org.cn/doc/qiliang.net/qt/tutorial1-02.html">下一章</A>] 
[<A href="http://www.qtopia.org.cn/doc/qiliang.net/qt/tutorial.html">教程一主页</A>] 
<P><!-- eof -->
<P>
<ADDRESS>
<HR>

<DIV align=center>
<TABLE cellSpacing=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD>Copyright &copy; 2002 <A href="http://www.trolltech.com/">Trolltech</A> 
    <TD><A href="http://www.trolltech.com/trademarks.html">Trademarks</A> 
    <TD><A 
      href="http://www.qtopia.org.cn/doc/qiliang.net/qt/zh_CN.html">译者:Cavendish</A> 

    <TD align=right>
      <DIV align=right>Qt 
3.0.5版</DIV></TR></TBODY></TABLE></DIV></ADDRESS></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -