自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Qt教程 Hello, World (1)

移動開發(fā)
本文章講述的程序是一個簡單的Hello World例子,這個教程介紹了使用Qt工具包進(jìn)行圖形用戶界面編程。它沒有包括所有的東西:強調(diào)的是教授一種圖形用戶界面編程的編程思想,并且介紹Qt的特征也是必需的。一些通常情況下使用的特征在這個教程里沒有用到。

***個程序是一個簡單的Hello World例子。它只包含你建立和運行Qt應(yīng)用程序所需要的最少的代碼。上面的圖片是這個程序的快照。

  1. #include <qapplication.h> 
  2. #include <qpushbutton.h> 
  3. int main( int argc, char **argv )  
  4. {  
  5.     QApplication a( argc, argv );  
  6.     QPushButton hello( "Hello world!", 0 );  
  7.     hello.resize( 100, 30 );  
  8.     a.setMainWidget( &hello );  
  9.     hello.show();  
  10.     return a.exec();  
  1. #include <qapplication.h> 

這一行包含了QApplication類的定義。在每一個使用Qt的應(yīng)用程序中都必須使用一個QApplication對象。QApplication管理了各種各樣的應(yīng)用程序的廣泛資源,比如默認(rèn)的字體和光標(biāo)。

  1. #include <qpushbutton.h> 

這一行包含了QPushButton類的定義。參考文檔的文件的最上部分提到了使用哪個類就必須包含哪個頭文件的說明。

QPushButton是一個經(jīng)典的圖形用戶界面按鈕,用戶可以按下去,也可以放開。它管理自己的觀感,就像其它每一個QWidget。一個窗口部件就是一個可以處理用戶輸入和繪制圖形的用戶界面對象。程序員可以改變它的全部觀感和它的許多主要的屬性(比如顏色),還有這個窗口部件的內(nèi)容。一個QPushButton可以顯示一段文本或者一個QPixmap。

  1. int main( int argc, char **argv )  
  2.     { 

main()函數(shù)是程序的入口。幾乎在使用Qt的所有情況下,main()只需要在把控制轉(zhuǎn)交給Qt庫之前執(zhí)行一些初始化,然后Qt庫通過事件來向程序告知用戶的行為。
 
argc是命令行變量的數(shù)量,argv是命令行變量的數(shù)組。這是一個C/C++特征。它不是Qt專有的,無論如何Qt需要處理這些變量(請看下面)。

  1. QApplication a( argc, argv ); 

a是這個程序的QApplication。它在這里被創(chuàng)建并且處理這些命令行變量(比如在X窗口下的-display)。請注意,所有被Qt識別的命令行參數(shù)都會從argv中被移除(并且argc也因此而減少)。關(guān)于細(xì)節(jié)請看QApplication::argv()文檔。

注意:在任何Qt的窗口系統(tǒng)部件被使用之前創(chuàng)建QApplication對象是必須的。

  1. QPushButton hello( "Hello world!", 0 ); 

這里,在QApplication之后,接著的是***個窗口系統(tǒng)代碼:一個按鈕被創(chuàng)建了。

這個按鈕被設(shè)置成顯示“Hello world!”并且它自己構(gòu)成了一個窗口(因為在構(gòu)造函數(shù)指定0為它的父窗口,在這個父窗口中按鈕被定位)。

  1. hello.resize( 100, 30 ); 

這個按酒被設(shè)置成100像素寬,30像素高(加上窗口系統(tǒng)邊框)。在這種情況下,我們不用考慮按鈕的位置,并且我們接受默認(rèn)值。

  1. a.setMainWidget( &hello ); 

這個按鈕被選為這個應(yīng)用程序的主窗口部件。如果用戶關(guān)閉了主窗口部件,應(yīng)用程序就退出了。

你不用必須設(shè)置一個主窗口部件,但絕大多數(shù)程序都有一個。

  1. hello.show(); 

當(dāng)你創(chuàng)建一個窗口部件的時候,它是不可見的。你必須調(diào)用show()來使它變?yōu)榭梢姷摹?/p>

  1. return a.exec(); 

這里就是main()把控制轉(zhuǎn)交給Qt,并且當(dāng)應(yīng)用程序退出的時候exec()就會返回。

在exec()中,Qt接受并處理用戶和系統(tǒng)的事件并且把它們傳遞給適當(dāng)?shù)拇翱诓考?/p>

    }
你現(xiàn)在可以試著編譯和運行這個程序了。
 
編譯

編譯一個C++應(yīng)用程序,你需要創(chuàng)建一個makefile。創(chuàng)建一個Qt的makefile的最容易的方法是使用Qt提供的連編工具qmake。如果你已經(jīng)把main.cpp保存到它自己的目錄了,你所要做的就是這些:

  1. qmake -project  
  2. qmake 

***個命令調(diào)用qmake來生成一個.pro(項目)文件。第二個命令根據(jù)這個項目文件來生成一個(系統(tǒng)相關(guān)的)makefile。你現(xiàn)在可以輸入make(或者nmake,如果你使用Visual Studio),然后運行你的***個Qt應(yīng)用程序!

行為

當(dāng)你運行它的時候,你就會看到一個被單一按鈕充滿的小窗口,在它上面你可以讀到著名的詞:Hellow World!

【編輯推薦】

QML教程:Qtmediahub項目概述

QML教程:Qt-Quick六大開源組件

QML教程:Qt-Quick六大開源組件

特別推薦 大話移動開發(fā)之QT-Quick

Qt開發(fā):釋放線程中創(chuàng)建的QUdpSocket對象

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-05 09:48:46

iPhone Interface

2011-06-08 17:59:43

Qt Creator

2013-12-12 17:30:03

Lua例子

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2016-09-21 12:56:31

JavascriptWeb前端

2012-02-20 14:26:48

JavaPlay Framew

2009-07-30 13:21:17

Scala入門Hello World

2009-09-16 17:15:19

OSGi Bundle

2009-08-11 10:32:23

什么是Groovy

2023-01-06 08:18:44

2023-09-04 07:30:03

Wasm匯編語言

2021-11-26 08:22:01

Java動態(tài)開發(fā)

2009-08-14 16:54:19

C# Hello Wo

2024-04-11 13:13:27

2014-04-11 11:36:42

NDKAndroid開發(fā)終端

2023-05-23 08:01:10

Netty網(wǎng)絡(luò)通信

2011-07-27 15:39:15

IOS IOS開發(fā)

2011-05-11 16:15:52

視頻教程Xcode 4Objective-C

2021-03-30 13:48:47

WebAssemblyWeb瀏覽器編程語言
點贊
收藏

51CTO技術(shù)棧公眾號