Qt4讀書筆記5

2021-04-24 14:54:47 字數 2189 閱讀 3155

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...