Leetcode本地閱讀器開發 01介面設計二

2022-06-12 06:36:10 字數 1783 閱讀 6105

返回專案宣告及目錄:leetcode本地閱讀器開發--總宣告

1、第乙個內容是左邊第一行的功能,讀取預設路徑和修改路徑。此路徑為本地閱讀器的搜尋題目的主目錄。

為了整個程式都能讀取工作目錄,我們將其設定為widget類的成員變數。

1

private

:2 ui::widget *ui;

34 qstring curpath;  //新新增的工作目錄變數

我們需要在程式啟動時預設乙個工作目錄,這樣不用每次啟動都設定。

因此需要在建構函式成員列表裡對curpath進行初始化。

建構函式列表新增: qwidget(parent)

, ui(

newui::widget)

, curpath(

"/home/jialu/documents/gitpro/leetcode

")  //

新新增的初始化工作路徑

建構函式內新增: ui->lineedit_2->settext(curpath);

最後,完成按下curr dir按鈕更新工作路徑的任務。

增加curr dir按鈕的槽函式,使其響應按鈕按下的操作,然後在函式內獲取文字框內的內容並對curpath進行修改。

void

widget::on_pushbutton_2_clicked()

2、第二個內容為左邊第二行,通過輸入題目資訊,對該工作目錄下的所有檔案進行檢索,找到匹配的檔案。

首先需要讀取該目錄下的所有檔案,此處需要借助qt的qdir目錄操作庫。

這裡介紹幾個使用頻率極高的函式,同時也是完成該功能所需要的函式:

1

qdir dir;

2dir.setpath(curpath);    //設定目錄

3if (!dir.exists())

dir.setfilter(qdir::dirs|qdir::files|qdir::nosymlinks|qdir::nodotanddotdot);  //設定檔案過濾器,過濾不想檢索的檔案型別

qfileinfolist list = dir.entryinfolist();  //將該目錄下經過過濾的檔案儲存在list中

for(int i=0; ii)

else

if(ts.startswith(quenum))

}

有了這幾個函式,我們就可以遍歷乙個資料夾下的所有內容。

但此時還有乙個問題,如果該資料夾下還有資料夾,我們想要遞迴的遍歷所有資料夾下的內容,該怎麼做呢?

一種解決方法是寫乙個遞迴函式,不過這種方法函式呼叫和介面等不好實現。

另一種解放方法就是使用佇列,用佇列來遍歷,因為我們知道,檔案結構類似於樹,這樣我們可以採用樹的層序遍歷的方法。

遍歷的過程中,我們對比當前檔名與想要查詢的題目編號或名稱是否相同。於是這一塊任務就完成了。

qlistqueue;

queue.push_back(dir.path());

while(!queue.empty())

else

if(ts.startswith(quenum))}}

3、最後乙個內容就是在左邊下面的文字框內顯示檢索結果,此內容下一節介紹。

--xyten--

--end--

移動開發 ido手機閱讀器

看到csdn的徵文活動 移動開發那點事 想起自己也做過幾次移動專案,特此更文 本科課程專案索引 ido是我除課程設計外第乙個完整的專案,現在看來很簡單,但對當時大二的我來說感覺是很 大 的專案。專案起因是參加學校組織的軟體設計比賽,戰線略微有點長,過程也挺糾結的,中間幾次都有猶豫 要不要做下去 的問...

護照閱讀器

護照閱讀器 首先從一代 二代護照閱讀器到最新嵌入式護照閱讀器,本身就是乙個識別技術 識別功能 識別準確率都逐步提高的過程。接下來看看桌面式跟嵌入式的應用行業,到底這兩款護照閱讀器有什麼區別?桌面式護照閱讀器 酒店管理系統 機場安全檢查管理系統 訪客管理系統 網咖實名制登記管理系統 汽車尾氣檢測管理系...

中華pdf閱讀器 IReader閱讀器使用體驗

作為一名秉承著 時間寶貴,多讀名著 的讀者,自2016年便開始使用掌閱平台讀書,剛開始在平板上閱讀,隨著閱讀量增大,覺得對眼睛傷害逐漸明顯,時常乾澀痠癢,於是在2017年年底購買了掌閱當年新出的產品 ireader ocean,之後便一直在該閱讀器上讀書。至今已在掌閱平台讀書一百三十餘本。對於打算入...