看了一眼博客,感覺自己好像學的東西好多,挺雜。哈哈,一部分是因為興趣,一部分是因為工作。
不知不覺QT基礎篇已經學完了,聯想到上次到某家公司技術面,還是覺得,總結真的很有必要。這里就對基礎篇做一個總結。
學習的網站:http://www.qter.org/portal.php?mod=list&catid=6&page=2
隨便嘛,寫給自己看的。
QT基礎知識:
一:
- 在設計模式下,可以很輕松建立各種 布件 像button, label等等
- ui->pushButton->setText("新窗口"); //將界面上按鈕的顯示文本更改為“新窗口” 可以用代碼的方式在構造函數里面更改部件屬性
- 信號和槽:可把他們都看作是函數,單擊按鈕后會發射信號,如Clicked();對話框接收到信號后會作出反應,accept();
- 設計模式下,作出Button,然后點擊右鍵,轉到槽函數,然后添加參函數,例如:
-
void MainWindow::on_pushButton_clicked() { QDialog *dlg = new QDialog(this); dlg->show(); }
- 創建時指定的this參數表明這個對話框的父窗口是MainWindow。
二:設計模式下與純代碼實現的信號與槽步驟
- 設計模式:(按鈕為例,登錄與退出)
-
- 新建項目,類名和基類保持MainWindow和QMainWindow不變;
-
創建Buttons,登錄按鈕為loginBtn ,退出按鈕為exitBtn ;
- 在屬性編輯器中可以更改objectName等屬性;
- 在設計模式下方有“信號和槽編輯器”,可以選擇發送者和接受者,可以選擇信號函數與槽函數;例如發送者為exitBtn,信號為clicked(),接收者為LoginDialog,槽為close();
- 右擊登錄按鈕,在彈出的菜單中選擇“轉到槽…”,然后選擇clicked()信號並確定。轉到相應的槽以后,添加函數調用: 在槽函數中加入(accept()),相當於你一單機登錄按鈕,就會執行LoginDialog就會執行(accept())函數
void LoginDialog :: on_loginBtn_clicked(){accept ();}
- 在main.cpp加入以下代碼 ,當accept執行時,彈出主窗口w。
#include#include "mainwindow.h"#include "logindialog.h"int main(int argc, char *argv[]){QApplication a(argc, argv);MainWindow w;LoginDialog dlg;if (dlg. exec() == QDialog::Accepted){w. show();return a. exec();}else return 0 ;}
- 代碼模式
- 首先在Main函數中加入上述第6步驟的代碼;
- 在頭文件中加入槽函數聲明:
private slots :void login();
- 在.cpp文件的構造函數添加connect(),第一個參數就是發射信號的部件,比如這里的loginBtn按鈕;第二個參數是發射的信號,比如這里是QPushButton類的單擊clicked()信號;第三個參數是接受信號的部件,比如這里是this即本部件也就是LoginDialog;第四個參數是要執行的槽,比如這里是LoginDialog類的login()。使用connect()函數就相當於以前在設計模式進行的關聯設置。
- 在.cpp文件最后添加槽的定義 ,實現一些功能。
三:添加資源文件
- Qt中可以使用資源文件將各種類型的文件添加到最終生成的可執行文件中,這樣就可以避免使用外部文件而出現的一些問題。而且,在編譯時Qt還會將資源文件進行壓縮,我們可能發現生成的可執行文件比我們添加到其中的資源文件還要小。
- 我們向項目中添加新文件,模板選擇Qt分類中的Qt資源文件(Qt Resource File)。
- 添加完文件后會自動打開該資源文件,需要先添加前綴,點擊“添加”按鈕,然后選擇“添加前綴”,默認的前綴是“/new/prefix1”,這個可以隨意修改(不要出現中文字符),我們這里因為要添加圖片,所以修改為“/myimages”。然后再按下添加按鈕來添加文件,這里最好將所有要用到的圖片放到項目目錄中。
- 也可以使用純代碼來添加文件:
四:添加菜單圖標
Qt中的一個菜單被看做是一個Action,我們在下面的Action編輯器(Action Editor)中可以看到剛才添加的“新建”菜單,如下圖所示。
五:布局管理,這個怎么說,多用就好
后面的實現文本查找功能,重新開一篇了,再重新過一遍。