qt4
讀書筆記5
第二章建立對話方塊
本章將教你如何用
qt建立對話方塊。對話方塊呈獻給使用者一些選項
(options and choices)
,執行使用者設定這些選項。這就叫對話方塊
(dialog boxes,or simply "dialogs"),
它提供了使用者和應用互相交談的方式。 許多
gui應用包括乙個主視窗
(a main window)
和乙個選單,乙個工具條,還有成打的對話方塊。當然也可以做乙個只有對話方塊的應用,如計算器。
我們將建立乙個純粹的對話方塊。然後看看如何使用
qt designer
建立對話方塊。使用
qt designer
比手工編碼如影並易於修改。
qdialogde
的子類
源**分為兩個檔案
:finddialog.h
和finddialog.cpp
,我們先看看
finddialog.h
#ifndef finddialog_h
#define finddialog_h
保護標頭檔案,避免多次包含
#include
qdialog
類繼承自
qwidge
class qcheckbox;
class qlabel;
class qlineedit;
class qpushbutton;
宣告後面用到的
qt類。
forward declaration
是c++
的慣用做法。
然後我們定義了
finddialog
作為qdialog
的子類
class finddialog : public qdialog ;
#endif
定義了兩個
slot.slots
也是乙個巨集
下面我們看看
finddialog.cpp
,這個檔案是
finddialog
類的實現
#include
#include "finddialog.h"
首先包含
,這個標頭檔案包括
qt gui
類的定義。
qt包含許多模組,每個模組都有自己的
library
。最重要的模組是
qtcore, qtgui,qtnetwork, qtopengl, qtscript, qtsql, qtsvg, qtxml.
標頭檔案包括
qtcore
和qtgui
模組所有的類。這樣避免了我們自己去找包含的類,減少麻煩。
finddialg::finddialog(qwidget *parent) : qdialog(parent)
qwidget::sizehint()
函式返回乙個
widget
的實際大小。
我們建立了很多物件,沒有寫相關的
delete
,只是不需要的,因為當父物件
destroyed,qt
自動刪除子物件.
下面看看
dialog's slots:
void finddialog::findclicked()
else
} void finddialog::enablefindbutton(const qstring &text)
其中的emit是qt
的關鍵字,預處理器會將其變成
c++**。
最後是main.cpp
來測試finddialog控制項
#include "finddialog.h"
int main(int argc, char *argv)
編譯問題:
由於使用了
q_object
巨集,所以
qmake
將包含特殊的規則來執行
moc(qt's meta-object compiler)。
使用q_object
巨集的類必須有
moc執行。
qmake
會自動增加這些規則到
makefile.
Qt4讀書筆記9
今天終於學完了第二章,對建立對話方塊有了一定了解。第二章剩餘部分 動態對話方塊 dynamic dialogs 動態對話方塊指的是在執行時 run time 有.ui 檔案建立的對話方塊。代替了用 uic把 ui檔案變成 c 的方式,我們可以用 quiloader class 在執行時載入 ui檔案...
Qt4讀書筆記12
設定狀態列 前面完成了選單和工具欄,我們開始處理電子 應用的狀態列。正常模式下,狀態列包含兩個指示資訊 當前 單元的位置和當前 單元的公式。狀態列也用於顯示一些臨時狀態資訊。mainwindow 的構造方法呼叫 createstatusbar 來建立狀態列 void mainwindow creat...
QT4下串列埠筆記
在進行串列埠程式設計時,首先解決的是串列埠配置問題,這些都是由套路的哦。使用了qextserialport mycom new posix qextserialport dev ttys0 qextserialbase polling 定義串列埠物件,指定串列埠名和查詢模式,這裡使用查詢方式poll...