2008年7月6日 星期日

QT-chap 1

基本上呢
這應該是記錄我看完之後用我的話寫出來的記錄

原始碼:

#include <qapplication.h>
#include <qpushbutton.h>


int main( int argc, char **argv )
{
  QApplication a( argc, argv );

  QPushButton hello( "Hello world!", 0 );
  hello.resize( 100, 30 );

  a.setMainWidget( &hello );
  hello.show();
  return a.exec();
}



這一章先顯示全部的程式碼
從下一章開始為了要頁面比較清爽(反正全部的程式碼在下面的參考資料上都有)
我只解示我想理解的部分或是不清楚的部分

QApplication a( argc, argv );

這裡的解釋是說每一個QT應用程式都必需使用到一個QApplication
當在輸入執行qt時,command line後面接的參數會一起被傳到程式裡面
文中是說當qt識別出這一些參數之後會把它刪除
應該是說這一些參數當程放在queue中
一個一個取出來識別,識別出來的就刪掉,個數也會減一


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

這裡建立一個按鈕
第一個參數表示按扭顯示的字串
第二個參數本來是用來設定這一個widget是屬於哪一個父窗口的子物件
但是因為設定是0,所以,它沒有父窗口,自己最大


a.setMainWidget( &hello );

把這一個QPushBottn設定為此程式的主要窗口
當此主要窗口離開時
則此程式就結束
這裡還有提到不一定要設定主窗口,現在沒有時間研究,以後再試試看


hello.show();

當建立一個窗口元件時,預設是不可見的
要另外設定為可見


return a.exec();

這裡就是main()把控制轉交給Qt
並且當應用程序退出的時候(當按關閉視窗時)exec()就會返回(回到我們寫的程式的最後一行)。
在exec()中,Qt接受並處理用戶和系統的事件並且把它們傳遞給適當的窗口部件。

最後加的題目是透過-geometry 指令來改變元件的大小與位置
格式:-geometry 寬x高+x_pos+y_pos

[root@host ~]# ./main -geometry 100x200+10+20

以上指令執行完後,會出現寬100、高200、位置在(10,20)的一個hello world的按鈕在桌面上

參考資料:這裡

沒有留言: