Qt筆記——入門
阿新 • • 發佈:2018-04-06
釋放 ati 默認 信號 關系 out pan 內存回收 坐標系統
- Qt的介紹
- 跨平臺c++圖形用戶界面應用程序框架
- Qt的框架
- 父類(基類)子類(派生類)
- 頭文件 QApplication應用程序類
- Qt頭文件沒有.h
- 頭文件和類名一樣
- 有且只有一個應用程序類的對象
- 窗口默認是隱藏,需要人為顯示
- 項目文件
- Q_OBJECT 信號與槽需要這個
- pro文件中,TARGET可以更改項目生成的名字
- 第一個Qt程序
- 如果不指定父對象,對象和對象沒有關系,獨立
- a指定b為它的父對象,a放在b的上面
- 指定父對象,只需要父對象顯示,上面的子對象自動顯示
- 父窗口和子窗口的區別(控件,部件,構件)
- 信號和槽
- 信號發出者(指針類型),處理的信號,信號接收者,信號處理函數
- 自定義槽(普通函數的用法),可以是任意的成員函數,普通全局函數,靜態函數
- 槽函數需要和信號一致(參數,返回值)
- 信號必須有signals關鍵字來聲明
- 信號沒有返回值,但可以有參數
- 信號就是函數的聲明,只需聲明,無需定義
- 信號可以重載,Qt4可以用宏signal和slot關鍵字連接信號,編譯的時候不對signal錯誤檢查,槽函數需要slots:聲明,Qt5如果有重載需要指針定義
- QSting轉換成可識別的字符 str.toUtf8().data()
- 用Lamda形式可以不用寫槽函數
- 信號發出者(指針類型),處理的信號,信號接收者,信號處理函數
- 坐標系統
- 對於父窗口,坐標系統相對於屏幕
- 原點,屏幕左上角;x,往右;y,往下
- 子窗口,相對於父窗口
- 對於父窗口,坐標系統相對於屏幕
- 內存回收機制
- 1,指定父對象,2直接或間接繼承
- 繼承QOBJECT,對象樹可以自動釋放內存
- 子對象如果是動態分配空間的new,不需要手動釋放delete
- 帶菜單欄的窗口
- 模態窗口
- QDialog dlg;dlg.exrc();循環,不關閉窗口無法操作其他窗口
- 非模態窗口
- 1,QDialog dlg;dlg.show(); 會一閃而過,直接運行過這條語句
- 2,QDialog *dlg1 =new QDialog(this); 放子函數裏,會不斷增加內存
- 3,QDialog *dlg1 =new QDialog;dlg1->setAttribute(Qt::WA_DeleteOnClose);dlg1->show();不指定父對象,設置窗口關閉時,釋放內存。顯示。
- 模態窗口
- 對話框
- QMessageBox,QFileDialog
Qt筆記——入門