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はテンプレートのまんま。
チュートリアルは、ちゃんとプロジェクトの作り方までご丁寧に説明していたので、
こんな初心者にはとてもありがたかった^^;
大体、いきなりソースだけポンと載せられて、「どうやってビルドすんのよ…(´・ω・`)」って
なるパターンなんだけどね。
まずはデザイナーを使ってインターフェイスを整える。
で、まあソースコードもチュートリアル通り手打ちしていったけど、ひとつ。
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に適当なテキストでも入れておけばオッケー。
このままだと味気ないので、また今度いじるかも。