翻譯|行業(yè)資訊|編輯:龔雪|2022-12-23 10:38:23.633|閱讀 242 次
概述:本系列文章將為大家介紹如何使用Qt 6來構(gòu)建一個項目,歡迎持續(xù)關(guān)注獲取更多Qt中文教程!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt是目前最先進、最完整的跨平臺C++開發(fā)工具。它不僅完全實現(xiàn)了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發(fā)過程中需要用到的工具。如今,Qt已被運用于超過70個行業(yè)、數(shù)千家企業(yè),支持數(shù)百萬設(shè)備及應(yīng)用。
本教程將介紹如何使用QtCreator創(chuàng)建一個小型的Qt應(yīng)用程序——文本查找器,它是Qt UI工具文本查找示例的簡化版本,應(yīng)用程序用戶界面是通過使用Qt Designer從Qt widgets構(gòu)建的,應(yīng)用程序邏輯是通過使用代碼編輯器用C++編寫的。
在上文中,主要為大家介紹了如何創(chuàng)建一個文本查找器項目(點擊這里回顧>>),本文繼續(xù)介紹如何完成Header文件、源文件等。
textfinder.h文件已經(jīng)有了必要的#includes、構(gòu)造函數(shù)、析構(gòu)函數(shù)和Ui對象,開發(fā)人員需要添加一個私有函數(shù)loadTextFile()來讀取和顯示QTextEdit中輸入文本文件的內(nèi)容。
1. 在Edit視圖的Projects視圖中,雙擊textfinder.h文件來打開它進行編輯。
2. 在私有部分中添加一個私有函數(shù),在Ui::TextFinder指針之后:
private slots: void on_findButton_clicked(); private: Ui::TextFinder *ui; void loadTextFile();
現(xiàn)在頭文件已經(jīng)完成,接下來是源文件textfinder.cpp。
1. 在Edit視圖的Projects視圖中,雙擊textfinder.cpp文件來打開它進行編輯。
2. 添加使用QFile加載文本文件的代碼,用讀取它,然后用()在textEdit上顯示它:
void TextFinder::loadTextFile() { QFile inputFile(":/input.txt"); inputFile.open(QIODevice::ReadOnly); QTextStream in(&inputFile); QString line = in.readAll(); inputFile.close(); ui->textEdit->setPlainText(line); QTextCursor cursor = ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); }
3. 要使用 和,添加以下#includes到textfinder.cpp:
#include "./ui_textfinder.h" #include <QFile> #include <QTextStream>
4. 對于on_findButton_clicked()插槽,添加代碼來提取搜索字符串,并使用QTextEdit::find()函數(shù)在文本文件中查找搜索字符串:
void TextFinder::on_findButton_clicked() { QString searchString = ui->lineEdit->text(); ui->textEdit->find(searchString, QTextDocument::FindWholeWords); }
5. 在構(gòu)造函數(shù)中添加一行來調(diào)用loadTextFile():
TextFinder::TextFinder(QWidget *parent) : QWidget(parent) , ui(new Ui::TextFinder) { ui->setupUi(this); loadTextFile(); }
下面這行代碼自動調(diào)用uic生成的ui_textfinder.h文件中的on_findButton_clicked() slot:
QMetaObject::connectSlotsByName(TextFinder);
Qt技術(shù)交流群:166830288 歡迎一起進群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)