QtCreator實現文本查找.ppt_第1頁
QtCreator實現文本查找.ppt_第2頁
QtCreator實現文本查找.ppt_第3頁
QtCreator實現文本查找.ppt_第4頁
QtCreator實現文本查找.ppt_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、專 業(yè):嵌入式專業(yè),Qt,Qt Creator實現文本編輯,實現功能: 以前都用設計器設計界面,而這次我們用代碼實現一個簡單的查找對話框。對于怎么實現查找功能的,我們詳細地分步說明了怎么進行類中方法的查找和使用。其中也將Qt Creator智能化的代碼補全功能和程序中函數的聲明位置和定義位置間的快速切換進行了介紹。,Qt Creator實現文本編輯,實現過程: 1.首先還是保存以前的工程,然后再將其打開。 我們發(fā)現Qt Creator默認的字體有點小,可以按下Ctrl鍵的同時按兩下+鍵,來放大字體。也可以選擇Edit-Advanced-Increase Font Size。,Qt Creato

2、r實現文本編輯,Qt Creator實現文本編輯,實現過程: 2.在mainwindow.h中加入#include 的頭文件包含,在private中添加 QLineEdit *find_textLineEdit; /聲明一個行編輯器,用于輸入要查找的內容 在private slots中添加 void show_findText(); 在該函數中實現查找字符串的功能。,Qt Creator實現文本編輯,實現過程: 3.進入查找菜單的觸發(fā)事件槽函數,更改如下。 void MainWindow:on_action_Find_triggered() QDialog *findDlg = new QDi

3、alog(this); /新建一個對話框,用于查找操作,this表明它的父窗口是MainWindow。 findDlg-setWindowTitle(tr(查找); /設置對話框的標題,Qt Creator實現文本編輯,實現過程: 3.進入查找菜單的觸發(fā)事件槽函數,更改如下。(續(xù)) find_textLineEdit = new QLineEdit(findDlg); /將行編輯器加入到新建的查找對話框中 QPushButton *find_Btn = new QPushButton(tr(查找下一個),findDlg); /加入一個“查找下一個”的按鈕 QVBoxLayout* layout

4、 = new QVBoxLayout(findDlg); layout-addWidget(find_textLineEdit);,Qt Creator實現文本編輯,實現過程: 3.進入查找菜單的觸發(fā)事件槽函數,更改如下。 (續(xù)) layout-addWidget(find_Btn); /新建一個垂直布局管理器,并將行編輯器和按鈕加入其中 findDlg -show(); /顯示對話框 connect(find_Btn,SIGNAL(clicked(),this,SLOT(show_findText(); /設置“查找下一個”按鈕的單擊事件和其槽函數的關聯 ,Qt Creator實現文本編輯,

5、實現過程: 4. 這里我們直接用代碼生成了一個對話框,其中一個行編輯器可以輸入要查找的字符,一個按鈕可以進行查找操作。我們將這兩個部件放到了一個垂直布局管理器中。然后顯示這個對話框。并設置了那個按鈕單擊事件與show_findText()函數的關聯。,Qt Creator實現文本編輯,實現過程: 5.下面寫實現查找功能show_findText()函數。 void MainWindow:show_findText()/“查找下一個”按鈕的槽函數 QString findText = find_textLineEdit-text(); /獲取行編輯器中的內容 先用一個QString類的對象獲得要

6、查找的字符。然后我們一步一步寫查找操作的語句。,Qt Creator實現文本編輯,實現過程: 6.在下一行寫下ui,然后直接按下鍵盤上的“”或“.”,因為ui是指針對象,所以自動生成“-”號,而且彈出了ui中的所有部件名稱的列表。如下圖。,Qt Creator實現文本編輯,實現過程:,Qt Creator實現文本編輯,實現過程: 7.我們用向下的方向鍵選中列表中的textEdit?;蛘呶覀兛梢韵容斎雝ext,這時能縮減列表的內容。,Qt Creator實現文本編輯,實現過程: 8.如上圖我們將鼠標放到textEdit上,這時便出現了textEdit的類名信息,且后面出現一個F1按鍵。我們按下鍵

7、盤上的F1,便能出現textEdit的幫助。,Qt Creator實現文本編輯,實現過程: 9.在幫助中向下拉,會發(fā)現這里有一個find函數。,Qt Creator實現文本編輯,實現過程: 10.我們點擊find,查看其詳細說明。,Qt Creator實現文本編輯,實現過程: 11.可以看到find函數可以實現文本編輯器中字符串的查找。其中有一個FindFlags的參數,我們點擊它查看其說明。,Qt Creator實現文本編輯,實現過程: 12.可以看到它是一個枚舉變量(enum),有三個選項,第一項是向后查找(即查找光標以前的內容,這里的前后是相對的說法,比如第一行已經用完了,光標在第二行時

8、,把第一行叫做向后。),第二項是區(qū)分大小寫查找,第三項是查找全部。,Qt Creator實現文本編輯,實現過程: 13.我們選用第一項,然后寫出下面的語句。 ui-textEdit-find(findText,QTextDocument:FindBackward); /將行編輯器中的內容在文本編輯器中進行查找 當我們剛打出“f”時,就能自動彈出textEdit類的相關屬性和方法。,Qt Creator實現文本編輯,實現過程: 13.可以看到,當寫完函數名和第一個“(”后,系統會自動顯示出該函數的函數原型,這樣可以使我們減少出錯。,Qt Creator實現文本編輯,實現過程: 14.這時已經能實

9、現查找的功能了。但是我們剛才看到find的返回值類型是bool型,而且,我們也應該為查找不到字符串作出提示。 if(!ui-textEdit-find(findText,QTextDocument:FindBackward) QMessageBox:warning(this,tr(查找),tr(找不到 %1) .arg(findText); ,Qt Creator實現文本編輯,實現過程: 14. (續(xù)) 因為查找失敗返回值是false,所以if條件加了“!”號。在找不到時彈出警告對話框。,Qt Creator實現文本編輯,實現過程: 15.到這里,查找功能就基本上寫完了。show_findTe

10、xt()函數的內容如下。,Qt Creator實現文本編輯,我們會發(fā)現隨著程序功能的增強,其中的函數也會越來越多,我們都會為查找某個函數的定義位置感到頭疼。而在Qt Creator中有幾種快速定位函數的方法,我們這里講解三種。,Qt Creator實現文本編輯,實現過程: 第一,在函數聲明的地方直接跳轉到函數定義的地方。 如在do_file_Load上點擊鼠標右鍵,在彈出的菜單中選擇Follow Symbol under Cursor或者下面的Switch between Method Declaration/Definition。,Qt Creator實現文本編輯,實現過程: 這時系統就會自

11、動跳轉到函數定義的位置。如下圖。,Qt Creator實現文本編輯,實現過程: 第二,快速查找一個文件里的所有函數。 我們可以點擊窗口最上面的下拉框,這里會顯示本文件中所有函數的列表。,Qt Creator實現文本編輯,第三,利用查找功能。 1.我們先將鼠標定位到一個函數名上。,Qt Creator實現文本編輯,2.然后選擇Edit-Find/Replace-Find Dialog。,Qt Creator實現文本編輯,3.這時會出現一個查找對話框,可以看到要查找的函數名已經寫在里面了。,Qt Creator實現文本編輯,4.當我們按下Search按鈕后,會在查找結果窗口顯示查找到的結果。,Qt Creator實現文本編輯,5.我們點擊第二個文件。會發(fā)現在這個文件中有兩處關鍵字是高亮顯示。,Qt Creator實現文本編輯,6.我們雙擊第二項,就會自動跳轉到函數的定義處。,Q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論