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 主題!