Qt新手入門指南——創建一個基於Qt Widget的文本查找器(三)

慧都科技 發佈 2022-12-27T01:27:53.663089+00:00

Qt是目前最先進、最完整的跨平台C++開發工具。它不僅完全實現了一次編寫,所有平台無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用於超過70個行業、數千家企業,支持數百萬設備及應用。

Qt是目前最先進、最完整的跨平台C++開發工具。它不僅完全實現了一次編寫,所有平台無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用於超過70個行業、數千家企業,支持數百萬設備及應用。

本教程將介紹如何使用QtCreator創建一個小型的Qt應用程式——文本查找器,它是Qt UI工具文本查找示例的簡化版本,應用程式用戶界面是通過使用Qt Designer從Qt widgets構建的,應用程式邏輯是通過使用代碼編輯器用C++編寫的。

在上文中,主要為大家介紹了如何創建一個文本查找器項目(點擊這裡回顧:C++界面開發框架Qt新手入門教程:如何創建一個移動應用程式(二)-控制項新聞-慧都網),本文繼續介紹如何完成Header文件、源文件等。

QtitanRibbon官方最新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網

填補缺失的部分

完成Header文件

textfinder.h文件已經有了必要的#includes、構造函數、析構函數和Ui對象,開發人員需要添加一個私有函數loadTextFile()來讀取和顯示QtextEdit中輸入文本文件的內容。

1. 在Edit視圖的Projects視圖中,雙擊textfinder.h文件來打開它進行編輯。

2. 在私有部分中添加一個私有函數,在Ui::TextFinder指針之後:

private slots:
void on_findButton_clicked();

private:
Ui::TextFinder *ui;
void loadTextFile();

完成源文件

現在頭文件已經完成,接下來是源文件textfinder.cpp。

1. 在Edit視圖的Projects視圖中,雙擊textfinder.cpp文件來打開它進行編輯。

2. 添加使用QFile加載文本文件的代碼,用QTextStream讀取它,然後用QTextEdit::setPlainText()在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. 要使用QFile 和QTextStream,添加以下#includes到textfinder.cpp:

#include "./ui_textfinder.h"
#include <QFile>
#include <QTextStream>

4. 對於on_findButton_clicked()插槽,添加代碼來提取搜索字符串,並使用QTextEdit::find()函數在文本文件中查找搜索字符串:

void TextFinder::on_findButton_clicked()
{
QString searchString = ui->lineEdit->text();
ui->textEdit->find(searchString, QTextDocument::FindWholeWords);
}

5. 在構造函數中添加一行來調用loadTextFile():

TextFinder::TextFinder(QWidget *parent)
: QWidget(parent)
, ui(new Ui::TextFinder)
{
ui->setupUi(this);
loadTextFile();
}

下面這行代碼自動調用uic生成的ui_textfinder.h文件中的on_findButton_clicked() slot:

QMetaObject::connectSlotsByName(TextFinder);

Qt Widget組件推薦

  • QtitanRibbon - Ribbon UI組件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技術的Ribbon UI組件,QtitanRibbon致力於為Windows、Linux和Mac OS X提供功能完整的Ribbon組件。
  • QtitanChart - Qt類圖表組件:是一個C ++庫,代表一組控制項,這些控制項使您可以快速地為應用程式提供漂亮而豐富的圖表。
  • QtitanDataGrid - Qt網格組件:提供了一套完整的標準 QTableView 函數和傳統組件無法實現的獨特功能。使您能夠將不同來源的各類數據加載到一個快速、靈活且功能強大的可編輯網格中,支持排序、分組、報告、創建帶狀列、拖放按鈕和許多其他方便的功能。
  • QtitanDocking:允許您像 Visual Studio 一樣為您的偉大應用程式配備可停靠面板和可停靠工具欄。黑色、白色、藍色調色板完全支持 Visual Studio 2019 主題!
關鍵字: