【QT】筆記兼FAQ


整理一下之後會用到的東西。 (未完)

  1. 如何安裝
    1. 如何在Ubuntu 9.10 環境安裝QT4
      A: 建議利用 Ubuntu軟體中心 安裝
    2. 如何在WinXP/VS2005環境安裝QT4
      A: 到 Qt 站點下載 QT4 套件安裝
    3. 如何在MacOs環境安裝QT4
    4. Qt Embedded的環境建構
      A: 參考
      http://blog.chinaunix.net/u3/91092/showart.php?id=1862993(未驗證)
      http://ftp.ie.vim.org/pub/trolltech/pub/qt/source/
    5. Qt for S60
      http://www.cnmsdn.com/html/201003/1270055782ID2919.html
      http://www.youtube.com/watch?v=cYffSxcbHus&feature=related
      http://www.youtube.com/watch?v=AKJsnUluU2E&NR=1
  2. 如何撰寫 Qt 程式(Ubuntu)
    1. 基本方式
      1. 先建立一個 hello.cpp
      2. 利用下面方式產生可執行檔
        $ qmake –project 
        $ qmake 
        $ make
    2. 使用Qt Designer(建議改用Qt Creator )
      1. 先使用Designer產生hello.ui
      2. 利用uic指令產生hello.h
        $ uic –o hello.h hello.ui
      3. 建立hello.cpp
      4. 基本上這是大約流程,不過建議改用(tbd, 先前是接Creator開發)
    3. 使用Qt Creator
      1. 整合性IDE,這邊不再多敘述。
  3. 如何撰寫Qt程式(Windows )
    1. 使用 Qt Creator
    2. 搭配VS 2005/VS add-in
  4. 程式架構
    1. 一個簡單的範例(Hello)
      #include <QtGui/QApplication>
      #include <QtGui/QLabel>
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
          QLabel label("Hello, world!");
          label.show();
          return app.exec();
      }
    2. HTML Tag 的使用
      QLabel label("<h2><span style=\"color: red;\">Hello</span>, world!</h2>");
    3. 為何程式裡面都要有下面這兩行
      QApplication app(argc, argv);
      app.exec();
    4. 甚麼是Signal/Slot
      直接使用 Qt Creator 裡面用 Go to slot 就可以像 MSVB 一樣規畫 click… 之後的動作。
      image
      A: 就我的想法,Signalr就是Send message,而Slot就是Revicer
      http://www.youtube.com/watch?v=c0HkTtUNxrw
  5. 先學會除錯
    1. 中斷點(和 MSVS 類似,有 watch 可直接看變數值)
      image
    2. qDebug
      1. 方法一
        #include <QtDebug>
        qDebug() << "Show this via qDebug\n"; 
      2. 方法二
        qDebug("Show this via qDebug”);
    3. Dialog
      1. QInputDialog::getText
      2. QInputDialog::getItem
        bool ok;
        QStringList list;
        list<<"male"<<"female";
        QString str = QInputDialog::getItem(this,"Sex","Please select sex",list,0,false,&ok);
        if ( ok ) {
            qDebug() << "Sex =" << str << "\n";
        } else {
            qDebug() << "Empty\n";
        }
      3. QInputDialog::getInteger
            
        bool ok;
        int i = QInputDialog::getInt(this, tr("Hello"),
                                          tr("Percentage:"), 25, 0, 100, 1, &ok);
        if ( ok ) {        
            qDebug("%i\n", i);
        } else {
            qDebug("Empty\n");
        }
      4. QInputDialog::getDouble
    4. MessageBox
      1. information
    5. 補充
      1. qDebug http://doc.trolltech.com/4.0/qtglobal.html#qDebug
      2. Dialog/MessageBox http://www.cnblogs.com/se7en/archive/2009/12/10/1621231.html
      3. Qt Examples and Demos | Dialogs | Standard Dialogs
  6. 資料型態與型態互換
    1. QStringList
    2. QString
      1. Int to Qstring/ QString::number(int)
      2. QString to Int/ QString().toInt()/ QString::number(100)
  7. Layout
    1. QFormLayout
    2. QGridLayout
    3. QHBoxLayout
    4. QVBoxLayout
  8. 基本類別
    1. QWidget
    2. QFrame
    3. QMainWindow
  9. 繪圖類別
    1. QPrinter
    2. QCanvas
    3. RenderArea
    4. 圖形處理 blur…
    5. 動畫(相簿功能)
  10. 閱讀文件
    1. 初級建議先看4.0 http://qt.nokia.com/doc/4.0/examples.html
  11. 如何發佈
    1. Windows環境
    2. Ubuntu環境
    3. Embedd環境
  12. 元件的使用 與 Layout
    1. QPushButton
      1. clicked()
    2. QLineEdit Class
      1. Length/ length()
      2. setText(Qstring *) / setText(tr(“string”))
      3. textChanged
      4. LayoutDirection
    3. Progress Dialog
    4. LCD
      1. ui->lcdNumber->display();
    5. Label
    6. Timer
    7. QtWebKit
      1. __qt_sender__.text
    8. Qthread http://www.youtube.com/watch?v=jfHM4pQSqt4&NR=1
  13. 自我評量
    1. 計算機
      參考 http://qt.nokia.com/doc/4.0/widgets-calculator.html (digitClicked)
    2. Dec2Hex
    3. 小畫家
      http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QPainter.html
      http://blog.csdn.net/iamdbl/archive/2007/05/29/1630129.aspx
    4. qt with sqlite
    5. qt with rs232
      http://files.codes-sources.com/fichier.aspx?id=50735&f=debug-devel%2fqextserialport%2fposix_qextserialport.cpp
      http://blog.xuite.net/cjy0503/mylife/14326585
  14. 後記
    1. 何為Qt Extended/Qtopia與Qt Embedded
      參考(1) Qt Software將不再維護Qt Extended
      http://zylix666.blogspot.com/2009/03/qt-softwareqt-extended.html
      參考(2) QT、QPE、Qtopia、Qt/Embedded、Qtopia Core 究竟是什麼?
      http://leterboy.wordpress.com/2007/03/19/qt、qpe、qtopia、qtembedded、qtopia-core-究竟是什麼/
    2. 複習 C++
      1. vector,可以想成array
        http://caterpillar.onlyfun.net/Gossip/CppGossip/vector1.html
  15. 參考
    1. Introduction to Qt4 toolkit
      http://zetcode.com/tutorials/qt4tutorial/introduction/
    2. Live and Learn(提供許多實用的技巧)
      http://www.cnblogs.com/se7en/
  16. 延伸
    1. 在Blackfin Linux上繪圖 (SDL, DirectFB & Qt)與影像的表現
      http://ctov.compotechasia.com/?p=145
 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com