回 OPENHOME 首頁
語言技術:Qt4 Gossip
Qt 可以運行在不同的平台,像是 Unix/X11、Windows、Mac OS 與支援 framebuffer 的嵌入式Linux平台(Embedded Linux Platform),這邊的文件使用的版本為
Qt OpenSource 4.3.3
版,在 Vista 作業系統下撰寫。
入門
先來嘗試一下幾個簡單的 Qt 程式,並初步了解一些核心特性。
Hello!World! Orz..
第一步,當然是先克服 Qt 的安裝問題,然後來個簡單的 Hello!World! Orz...
Windows XP/Vista 下安裝 Qt4
第一個 Qt 程式
簡單的顯示中文(使用 Unicode 轉換)
Signal 與 Slot
Signal 與 Slot 是 Qt 的特性,讓物件之間可以同步的(Synchronous)通知訊息,但又不必知道彼此,Signal 是由物件發出。
使用 Signal 與 Slot(使用按鈕關閉視窗)
使用 Signal 與 Slot(使用拉桿改變LCD數字)
自訂 Signal 與 Slot
事件處理
事件基本上是非同步的(Asynchronousd),通常由視窗或系統發出,讓應用程式可以回應使用者動作或系統訊息。
事件類型與處理者
事件接受與否、event() 方法
事件過濾器
自訂與傳送事件
基本版面配置
Qt 的三種基本版面配置類型為水平、垂直及格狀(Grid)配置。
QHBoxLayout 與 QVBoxLayout 版面配置
QGridLayout 版面配置
較複雜的版面配置
自訂版面配置管理員(Layout Manager)
其它
Qt 在發行時,本身即帶有豐富的參考文件與範例,為入門時的必看資料。
Qt 參考文件與範例
簡介 Qt Designer
常用圖型元件
元件講是講不完的,這邊主要在簡介幾個元件作用,想了解每個元件詳細使用方式,
Qt 參考文件與範例
才是 王道。
按鈕選項
按鈕與選項是視窗程式中最基本的元件。
QPushButton
QCheckBox 與 QRadioButton
QComboBox
對話方塊
對話方塊用來與使用者作簡單的訊息交換與溝通。
QInputDialog 與 QMessageBox
QColorDialog 與 QFontDialog
QFileDialog
自訂對話方塊(Dialog)
文字欄位
文字欄位是使用者輸入資訊的基本元件。
QLineEdit
QTextEdit
清單元件
這類元件通常用於顯示項目清單,可以簡單的列示,或者是使用樹狀或表格等。
QListWidget 與 QListWidgetItem
QTreeWidget 與 QTreeWidgetItem
QTableWidget 與 QTableWidgetItem
Model 與 View 類別
版面元件
除了上面介紹的三種基本版面配置之外,還可以使用一些版面元件來協助元件的群組與版面的切割。
QTabWidget
QSplitter
QStackedLayout
QScrollArea
其它元件
簇繁不及備載...Orz...
QScrollBar
QTimer 與 QLCDNumber
QProgressBar
QWizard
QMainWindow
QMdiArea
QSplashScreen
常用 API
Qt 已經不只是個 GUI 框架,它提供豐富的 API,可作為撰寫應用程式的基礎。
QString、容器元件
QString 是常用的類別之一,擁有一些與容器類似的特性,而 Qt 提供了一系列的通用容器類別(Container class),使用上更輕量級且安全。
QString
循序容器(QVector、QLinkedList、QList...)
關聯容器(QMap、QHash...)
泛型演算(Generic Algorithms)
檔案處理
檔案輸入輸出是一個應用程式所必備的,藉由檔案的輸入輸出,也可以一同瞭解Qt的I/O處理。
QFile
QTextStream
QDataStream
QFileInfo 與 QDir
Qt 資源系統
資料庫
QtSql 模組提供與平台、資料庫無關的資料庫存取需求,在這邊使用 MySQL 作為示範。
Qt 的 MySQL 驅動程式
QSqlQuery
QSqlQueryModel 與 QSqlTableModel
繪圖
Qt 繪圖基於 QPainter,可於 QPaintDevice 的子類別上,進行幾何圖案、圖像、文字等繪製。
QPainter
QMatrix
QPixmap、 QBitmap、QImage 與 QPicture
QPrinter
拖放(Drag & Drop)與剪貼
拖放動作對於使用者是很直覺的操作,而剪貼簿可以方便使用者於不同的應用程式間分享資料。
拖放事件
拖放的執行與接受
剪貼簿(QClipboard)
網路
Qt 的網路模組提供網路存取時的高階與低階 API,基於非同步(Asynchronous)及 Signal 的行為。
QHttp
QFtp
QTcpSocket
QTcpServer
進階議題
進階議題就是比較進階的議題。。XD
多執行緒(Multithreading)
想要實作多執行緒功能,只要繼承 QThread 類別,單就表面上來看,執行緒並不困難。
QThread
執行緒的停止
QMutex 與 QMutexLocker
QWaitCondition
QReadWriteLock 與 QSemaphore
QThreadStorage
國際化(Internationalization)
讓您的應用程式可以因地制宜,顯示不同的語系文字。
使用 Unicode
翻譯應用程式
多國語系選擇與切換
附錄
Qt 4 初體驗
Ubuntu 下安裝 Qt 4.3.1
Qt Eclipse integration for C++
QDeveloper: Free cross-platform Development Environment for Qt4