【QtCreatorでアプリ開発】QtCreatorでTextFinderを作る

アイキャッチ Qt
スポンサーリンク

前回に引き続きQtCreatorを使って、アプリ開発の触りをまとめました。

前回はQtCreatorのインストールとアプリケーションを作る流れをまとめました。

今回は、TextFinderを作っていきます。表示されたテキストから文字列を検索するという、なんてことないアプリです。

こんな感じのアプリです。

TextFinder

今回は、以下の公式サイトのドキュメントを参考にしました。

それでは順番に説明していきます。

開発環境

ホストOS:macOS

ゲストOS:LinuxMint

仮想環境:VirtualBox(Ver.6.1.4)

QtCreatorでプロジェクトの作成

新規プロジェクトの作成

まずプロジェクトを作成します。

「New Project」→ 「Qt WidgetsApplication」を選択しましょう。

QtCreatorでプロジェクトの作成

プロジェクトのファイルパスを設定

プロジェクトの保存先のファイルパスを設定しましょう。

Name:プロジェクト名

Create in : ファイルパス

QtCreatorでファイルパスを設定

Kit Selectionを選択

Desktopを選択しましょう。

QtCreator  kit selection

クラスの設定

Class Name : textfinder

Base class: QMainWinodw

Header file : textfinder.h

Source file : textfinder.cpp

Form file : textfinder.ui

QtCreator TextFinder

プロジェクト管理

QtCreator

これでプロジェクトの作成は完了です。

UIコンポーネントを作成

プロジェクトを作成したのち、「textfinder.ui」をダブルクリックして、以下のエディタを開いてUI部品を配置しましょう。

QtCreate

配置する部品は以下の通りです。

UI部品は、左の枠からドロップ&ドロップで配置することができます。

Label : Keywordにテキストを変更

lineEdite : 特に変更なし

PushButton : テキストを「find」に変更し、QObject名はFindButtonに変更

TextEdit:変更なし

QtCreatorのUI部品

またUI部品をキレイに配置していきましょう。

①まずレイアウトを整えたいUI部品を選択します。

②「Lay Out Horizontally」をクリックする。

※同様に先ほどの部品とTextEditerを「LayOut Vertically」でレイアウトを整えます。

QtCreator レイアウト

これでUI部品の配置は完了です。

次に、スクリプトを編集していきます。

ヘッダーファイル(textfinder.h)を編集する

privateセクションに宣言されている「Ui::textfinder *ui;」の下に以下のコードを追加します。

また、追加後のヘッダーファイルを載せておきます。

void loadTextFile();

textfinder.cppを編集する

まずloadTextFile関数を実装していきます。

loadTextFile関数は、指定のファイルを読み込むための関数になります。

textfinder.cppの最終行に以下のコードを追加します。

QFileでファイルを読み込みます。その後、QTextStremで読み込み、かつ読み取り専用で開きます。

テキストファイルは、このあと作成するのでファイル名はなんでもOKです。

今回は、この後input.txtを作成するので、inpiutFile(“:/input.txt”)としておきます。

ファイルを全て読み込んだら、開いたファイルを閉じる作業をおこないます。

続いて、QFileとQTextStreamを使用するために、ヘッダーファイルをインクルードします。

on_FindButton_Clickededのスロットを実装

「Find」ボタンが押された時の機能を実装しましょう。

lineEditで検索するキーワードを取得し、変数searchStringに代入します。

そして、find関数を使用して、searchStringに格納されたテキストを、読み込んだテキストに完全マッチする箇所を検索します。

また、QtCreatorで自動生成されたtextfinder.cppでui_textfinder.hという存在しないファイルをインクルードします。

これは、コンパイル時にユーザーインターフェースコンパイラ(uic)によって生成されるものになります。

そのため以下のコードは、どこかに追加する必要ありません。

on_FindButton_clickedスロットはui_textfinder.h-sonokawaで以下のシグナルと接続されるみたいです。

また、シグナルとスロットについては公式ドキュメントに記載されています。

最後にリソースファイルの設定です。

リソースファイルの追加

「File」→「New File or Project」を選択すると以下のダイアログが表示されます。

「Qt」→「Qt Resource File」を選択し次に進みます。

QtCreatorリソースファイル

次に、ファイルの追加場所を指定します。

QtCreatorリソースファイル追加

概要は問題なければ、「Finish」ボタンを押します。

QtCreatorリソースファイル

すると以下の項目が画面下に表示されます。

QtCreatorリソースファイル追加

「Add」→「Prefix」を選択し、Prefix欄に「/」と記入しましょう。

その後、再度「Add」→「files」を選択し、こちらで適当に作った「input.txt」を選択します。

すると、以下の画面のように、Resource以下に、「textfinder.qrc」さらにその下に「input.txt」が追加されているはずです。

QtCreatorリソースファイル

ここまで出来たらデバッグして動作を確認ましょう。

qmake && make

最後にビルドしましょう。

Linuxの場合、「端末」を開いてプロジェクトが格納されているディレクトリに移動しましょう。

実行ファイルtestfinderが作成されていれば成功です。

以下のコードを端末で実行することで、作成したアプリケーションを起動させることが出来ます。

コメント

タイトルとURLをコピーしました