日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

發布時間:2024/9/27 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


創建一個基于應用的QtWidget應用程序

這個手冊描述了怎樣使用QtCreater創建個一個小的Qt應用程序,Text Finder.它是Qt工具Text Finder例子的簡寫版本。這個應用程序的用戶界面通過使用Qt Designer來構造生成。邏輯上來說,這個應用程序是通過代碼編輯器上編寫C++代碼實現的。

?

創建Text Finder項目案例:

1選擇File(文件)> New Fileor Project(新建文件或項目) > Application(應用程序)> QtWidgets Application > Choose(選擇)

接著打開了項目介紹和位置窗口

2在名稱的文本框中,填寫TextFinder

3在創建路徑的文本框中,鍵入項目文件存儲路徑,例如:E:\Examples,接著點擊下一步(在WindowsLinux平臺)或者繼續(在OS X平臺上)。

構建套件對話框打開了:

4為運行您的項目選擇構建套件,接著點擊下一步或者繼續

注意:如果一個套件在工具 > 選項 >編譯和運行 >Kits”,這個對話框將會跳過。

接著類信息對話框打開了:

5在類名的文本框中,TextFinder作為類名。

6在基類列表里,選擇QWidget作為基類類型。

注意:頭文件,源文件和界面文件將根據類名自動匹配。

7點擊Next和繼續。

接著項目管理窗口被打開:

??????8檢查項目設置,并且點擊完成(在WindowsLinux平臺)或者繼續(在OS X平臺)

TextFinder項目包含以下文件:



textfinder.h

截圖:

textfinder.cpp

main.cpp

textfinder.ui

TextFinder.pro


添加缺少部分:

開始設計用戶界面,添加缺少的代碼,實現查找功能。

設計用戶界面:

1Qt Creater中的Edit編輯模式里,雙擊textfind.ui文件,轉到Qt設計界面。

2拖拽下面的部件到界面中:

LabelQLabel

Line EditQLineEdit

PushButtonQPushButton

注意:如果想快速定位這些部件,可以使用在工具欄上部的搜索窗口。

例如,查找Label部件,可以輸入Label進行查找:

??????3雙擊Label部件,鍵入文本”keyword”

??????4雙擊Push Button部件,鍵入文本”Find”

??????5在屬性面板,改變objectNamefindButton

??????6 Ctrl+A(或者Cmd+A)選中這些部件,點擊水平布局(在LinuxWindow平臺上按Ctrl+H,在OS X平臺上按Ctrl +Shift + H)應用一個水平布局(QHBoxLayout)。

??????7拖拽一個Text Edit部件(QTextEdit)到界面上去。

??????8選中設計窗口空白區域,點擊垂直布局(或按Ctrl + L)來應用一個水平布局(QVBoxLayout)。

應用水平和垂直布局確保在不同的屏幕上的自適應。

9當用戶點擊Find按鈕的時候,將調用一個find方法,如果您想實現這個功能,您可以使用Qt中的信號(signals)和槽(slots)機制。當特定的事件發生時候一個信號(signal)將被發散(emitted),與此同時,一個槽函數(slot)將會被調用來響應這個特定的信號。在Qt WidgetsQt Designer中有一些預先定義好的信號(signals)和槽(slots)可以供您直接使用。接下來為find函數添加槽:

  • 右擊”Find”按鈕打開一個右鍵菜單。

  • 選擇 轉到槽” >clicked(),接著選擇.

    一個私有類型的槽函數on_findButton_clicked()被添加到了頭文件textfinder.h中去,一個私有的函數TextFinder::on_findButton_clicked()被添加到源文件textfinder.cpp源文件中。

截圖如下:

頭文件部分截圖:

??????10Ctrl+S(或Cmd + S)保存您的改變。

??????如果想了解更多關于通過QtDesigner來設計界面的信息,查看Qt Designer手冊(http://doc.qt.io/qt-5/qtdesigner-manual.html

?

完善頭文件:

???textfinder.h文件里面已經有了必要的頭文件#include,一個構造函數,一個析構函數,和一個UI對象,你需要添加私有的函數loadTextFile(),讀取并且顯示文本的中的內容到QTextEdit中去。

??????1在項目面板中的編輯視圖,雙擊textfinder.h文件,打開并且編輯它。

??????2添加私有函數到私有區域,在Ui::TextFinder指針后面,插入一下的代碼片段

privateslots:

???voidon_findButton_clicked();

?

private:

???Ui::TextFinder*ui;

???voidloadTextFile(); //加載文件的方法

完善源碼文件:

??????現在頭文件已經完成了,接下來轉到源文件:textfinder.cpp.

??????1在項目面板中的編輯視圖,雙擊源文件textfinder.cpp,開始編輯。

??????2loadTextFile里面,加載一個文件使用QFile,讀取文件內容使用QTextStream,顯示文本內容到textEdit使用QTextEdit::setPlainText()函數,注意的是若想使用QFileQTextStream,需要導入如下頭文件:

#include <QFile>

#include <QTextStream>

??????3loadTextFile函數的內容如下:

voidTextFinder::loadTextFile()

{

???//加載資源文件input.txt,關于資源文件的加載將下文講述

???QFileinputFile(":/input.txt");

???inputFile.open(QIODevice::ReadOnly);

???

???QTextStreamin(&inputFile);

???QStringline=in.readAll();

???inputFile.close();

???

???ui->textEdit->setPlainText(line);

???QTextCursorcursor=ui->textEdit->textCursor();

???cursor.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor,1);

}

??????4on_findButton_clicked()槽函數里,通過QTextEdit::find()方法可以查找在文本文件中的字符串。下面是代碼片段:

voidTextFinder::on_findButton_clicked()

{

???QStringsearchString=ui->lineEdit->text();

???ui->textEdit->find(searchString,QTextDocument::FindWholeWords);

}

??????5 當這兩個方法都完成之后,在構造方法里添加一行代碼來調用loadTextFile(),代碼片段如下:

TextFinder::TextFinder(QWidget*parent):

???QWidget(parent),

???ui(newUi::TextFinder)

{

???ui->setupUi(this);

???//調用加載文件的方法

???loadTextFile();

}

??????on_findButton_clicked()槽函數將會被自動生成到ui_textfinder.h中下面的一行代碼調用:

QMetaObject::connectSlotsByName(TextFinder);

創建資源文件:

??????您需要一個資源文件(.qrc),這個資源文件嵌入了您輸入的文本文件。這個文本文件可以是任意添加了一段文本的.txt文件。創建一個叫做input.txt的文件,并且將它存儲在和源代碼所在的同級目錄里。

添加資源文件:

??????1選擇File (文件)> New File or Project(新建文件或項目) > Qt>Qt Resource FileQt資源文件)> Choose;

選擇位置對話框如下:

??????2在名稱文本框中,鍵入textfinder

??????3在路徑文本框中,鍵入E:\Examples\TextFinder,點擊下一步或者繼續。項目管理對話框打開了:

??????4添加到項目域,選擇TextFinder.pro,點擊完成。在代碼編輯器中打開這個.qrc文件.

5右擊textfinder.qrc,選擇右鍵菜單中的addPrefix

??????6Prefix文本域里面,用斜線(/)替換掉默認的prefix.

??????7右擊textfinder.qrc,選擇右鍵菜單中的添加現有文件。然后定位到input.txt文件所在的位置,添加進去。

編譯和運行您的程序:

??????至此為止,您已經有了所有必要的文件,您可以點擊按鈕來編譯和運行您的程序了。截圖如下:

?

總結

以上是生活随笔為你收集整理的一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。