Tutorial: TextFinder









とりあえず、Qt Creatorに内蔵されていたチュートリアルをやってみることにした。

"Creating a Qt Widget Based Application"というのがあったのでそれにしてみた。

こちらがWeb版のチュートリアルです。一応載せておく。

Qt Creator : Creating a Qt Widget Based Application



では続きからどうぞ。
とりあえず、ソースコードを載せてみる。

勿論、"基本的に"チュートリアル通りなのであまり意味はないかもしれないけど。



〜〜textfinder.cpp〜〜


#include <QtCore/QFile>
#include <QtCore/QTextStream>
#include <QTextCursor>

#include "textfinder.h"
#include "ui_textfinder.h"

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

TextFinder::~TextFinder()
{
delete ui;
}

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);
}

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




〜textfinder.h〜


#ifndef TEXTFINDER_H
#define TEXTFINDER_H

#include <QWidget>

namespace Ui {
class TextFinder;
}

class TextFinder : public QWidget
{
Q_OBJECT

public:
explicit TextFinder(QWidget *parent = 0);
~TextFinder();

private slots:
void on_findButton_clicked();

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

#endif // TEXTFINDER_H




main.cppはテンプレートのまんま。







チュートリアルは、ちゃんとプロジェクトの作り方までご丁寧に説明していたので、

こんな初心者にはとてもありがたかった^^;

大体、いきなりソースだけポンと載せられて、「どうやってビルドすんのよ…(´・ω・`)」って

なるパターンなんだけどね。





まずはデザイナーを使ってインターフェイスを整える。

どこかの会社のVisualなんとかってやつと比べると、レイアウト管理ができてとてもいい。



で、まあソースコードもチュートリアル通り手打ちしていったけど、ひとつ。

Completing the Source Fileのここ。




To use QFile and QTextStream, add the following #includes to textfinder.cpp: #include <QtCore/QFile>

#include <QtCore/QTextStream>

 

ソースを見てもらえばわかるけど、TextEdit内でカーソル位置を動かすために

QTextCursorクラスを使ってる。

まあ文字通り、カーソル位置を取得したり、セットできるクラス。

これを使うためには、<QTextCursor>をインクルードしておかなきゃなんない。

てわけで、一緒にこの一行も。



#include <QTextCursor>



あとはチュートリアルの説明どおりかな。

リソースファイルで追加したinput.txtに適当なテキストでも入れておけばオッケー。



このままだと味気ないので、また今度いじるかも。