[Предыдущий: Создание проекта в Qt Creator] [Руководство по Qt Creator] [Следующий: Текстовый редактор] Написание простой программы с помощью Qt Creator
|
Замечание: Этот урок подразумевает что пользователь имеет опыт написания простых приложений Qt, проектирования интерфейса пользователя в Qt Designer и использовании системы ресурсов Qt.г |
В этом примере мы опишем шаги использования Qt Creator для написания маленькой программы Qt, Text Finder. Вдохновлённые примером QtUiTools Text Finder, мы напишем похожую на него но упрощённую версию как показано ниже.
После того как вы установили Qt Creator, он автоматически определит, находится ли Qt в вашей переменной PATH. Если нет, то выполните инструкции в Управление профилями Qt.
Мы начнём с проекта Gui приложение Qt4, сгенерированного Qt Creator. Документ Создание проекта в Qt Creator детально описывает этот проект. Не забудьте выбрать QWidget в качестве базового класса Text Finder. Если ваш проект ещё не загружен, загрузите его выбрав Открыть файл или проект... из меню Файл.
В вашем проекте будут следующие файлы:
Файлы .h и .cpp содержат необходимые строки кода. Файл .pro также завершён.
Мы начнём с проектирования интерфейса пользователя и затем перейдём к заполнению недостающего кода. В заключение мы добавим поиск.
Для начала проектирования интерфейса пользователя, щёлкните два раза на файле textfinder.ui в обозревателе проекта. Это запустит интегрированный Qt Designer.
Спроектируйте форму ниже с:
Мы рекомендуем вам использовать QGridLayout для расположения метки, строки ввода и кнопки. Затем этот компоновщик и редактор текста могут быть добавлены в QVBoxLayout. Если вы новичок в проектировании форм с Qt Designer, вы можете взглянуть на руководство по Qt Designer.
Файл textfinder.h уже имеет необходимые #include заголовочные файлы, конструктор, деструктор и объект Ui. Нам необходимо добавить закрытый слот on_findButton_clicked() для выполнения операции поиска. Нам также необходима закрытая функция loadTextFile() для чтения и отображения содержимого входного файла в QTextEdit. Это делается следующим кодом:
private slots: void on_findButton_clicked(); private: Ui::TextFinder *ui; void loadTextFile();
Замечание: Объект Ui::TextFinder уже предоставлен.
Теперь, когда наш заголовочный файл завершён, перейдём к файлу исходных кодов textfinder.cpp. Мы начнём с заполнения функциональности для загрузки текстового файла. Это показано в фрагменте кода, приведённого ниже:
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); }
Мы загружаем текстовый файл используя QFile, читаем его с помощью QTextStream, а затем отображаем его в textEdit с помощью setPlainText(), что требует добавления дополнительных директив #includes в textfinder.cpp:
#include <QtCore/QFile> #include <QtCore/QTextStream>
Для слота on_findButton_clicked() мы извлекаем строку поиска и используем функцию find() для поиска строки в текстовом файле. Это показано в фрагменте кода, приведённого ниже:
void TextFinder::on_findButton_clicked() { QString searchString = ui->lineEdit->text(); ui->textEdit->find(searchString, QTextDocument::FindWholeWords); }
После того как эти функции завершены, мы вызываем loadTextFile() в нашем конструкторе.
TextFinder::TextFinder(QWidget *parent) : QWidget(parent), ui(new Ui::TextFinder) { ui->setupUi(this); loadTextFile(); }
Слот on_findButton_clicked() будет вызван автоматически в сгенерированном uic ui_textfinder.h этой строчкой кода:
QMetaObject::connectSlotsByName(TextFinder);
Нам потребуется файл ресурсов (.qrc) в котором мы сохраним текстовый файл. Это может быть любой файл .txt с абзацем текста.
Чтобы добавить файл ресурсов:
Появится диалог мастера.
Появится эта страница:
Ваш файл ресурсов будет отображён в редакторе ресурсов.
После того как файл ресурсов будет успешно добавлен, появится следующее:
Теперь, когда у вас есть все необходимые файлы, нажмите на кнопку чтобы скомпилировать вашу программу.
[Предыдущий: Создание проекта в Qt Creator] [Руководство по Qt Creator] [Следующий: Текстовый редактор]
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) | Trademarks | Qt Creator 1.3.1 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |