【ctrl + f視窗】
第6行到第8行宣告了一些用於這個對話方塊實現中的qt類。前置宣告會告訴c++編譯程式類的存在,而不用提供類定義中的所有細節。
自定義類finddialog 讓他成為qdialog的子類:
對於所有定義了訊號和槽的類,在類定義開始處的q_object是必要的。
建構函式 parent指定了它的父視窗部件,如果為0證明它沒有父視窗。
qt::casesensitivity 是乙個列舉,它有qt::casesensitive 和 qt::caseinsensitive倆個取值。
signals 關鍵字本質是乙個巨集。
沒有必要在標頭檔案中就去訪問(如),
只是前置宣告,可以提高編譯過程的速度。
#include #include "finddialog.h"
finddialog::finddialog(qwidget *parent)
: qdialog(parent)
void finddialog::findclicked()
else
}void finddialog::enablefindbutton(const qstring &text)
包含該標頭檔案包含了qt gui類的定義。
類似的模組還有qtcore,qtgui,qtnetwork,qtopengl,qtscript,qtsql,qtxml
其中在中構成了qtcore和qtgui組成部分的所有類進行了定義。
包含這個標頭檔案就能夠省去我們在每個類中分別包含的麻煩。
意思就是說,就標頭檔案中包含乙個即可,不用每次都包含等。但是在標頭檔案包含乙個那麼大的標頭檔案是一種不好的程式設計風格。
在字串周圍的tr()函式呼叫是把它們翻譯成其他語言的標記。在每個qobject物件以及包含有q_object巨集的子類中都有這個函式的宣告。儘管我們不去使用翻譯這個功能,但是這還是乙個不錯的習慣呢。
在字串中使用了 "&"符號來表示快捷鍵。例如,第11行建立了乙個find按鈕,使用者可以在支援快捷鍵的平台下使用alt+f快捷鍵啟用它。
label->setbuddy(lineedit):設定了行編輯器作為標籤的夥伴。。。就是它可以再按下標籤的快捷鍵時接受焦點。
setdefault(true)讓find按鈕成為對話方塊的預設按鈕。意義就是按下enter鍵時能夠按下對應的按鈕。
setenabled(false)禁用了按鈕,使按鈕變為不可用狀態。
由於qobject是finddialog的父物件之一,所有可以省略connect()函式前面的qobject::字首。
布局管理控制項,那裡的**比較好理解,addstretch主要是為了能很好的佔據它本來應該占有的區域。
sizehint().height();可以返回乙個視窗部件所理想的大小。
不需要再析構函式處delete來釋放記憶體控制項,因為qt在刪除父物件的時候自動刪除其所屬的所有子物件,也就會刪除finddialog中作為其子孫的所有子視窗部件和子布局。
QT學習筆記(二)自定義視窗
主函式 main.cpp include include mywidget.h include int main int argc,char argv 標頭檔案 mywidget.h ifndef mywidget h define mywidget h include class mywidget...
乙個自定義視窗屬性的控制項 C
using system using system.ponentmodel using system.ponentmodel.design.serialization using system.web using system.web.ui using system.web.ui.webcontro...
自定義乙個死鎖
在鎖o1釋放之前需要等待鎖o2的釋放 在鎖o2釋放之前需要等待鎖o1的釋放.死在無限等待對方釋放鎖的迴圈中.這只是乙個簡單的死鎖 a需要b,b需要a 複雜一些的有 a需要b,b需要c,c需要a.public class demo6 implements runnable catch interrup...