[Предыдущий: Создание проекта в Qt Creator] [Руководство по Qt Creator] [Следующий: Qt Creator и системы управления версиями] Написание простой программы с помощью Qt Creator
|
Замечание: Этот урок подразумевает что пользователь имеет опыт написания простых приложений Qt, проектирования интерфейса пользователя в Qt Designer и использовании системы ресурсов Qt. |
В этом примере мы опишем шаги использования Qt Creator для написания маленькой программы Qt, Text Finder. Вдохновлённые примером QtUiTools Text Finder, мы напишем похожую на него но упрощённую версию как показано ниже.
После того как вы установили Qt Creator, он автоматически определит, находится ли Qt в вашей переменной PATH. Если Qt не находится в вашем PATH, вы можете установить его одним из следующих способов, в зависимости от вашей платформы:
Замечание: Если для сборки Qt вы использовали Visual Studio, все переменные окружения, установленные в Visual Studio, должны быть также установлены для Qt Creator.
Мы начнём с проекта Gui приложение Qt4, сгенерированного Qt Creator. Документ Создание проекта в Qt Creator детально описывает этот проект. Не забудьте выбрать QWidget в качестве базового класса Text Finder. Если ваш проект ещё не загружен, вы можете загрузить его выбрав Открыть... из меню Файл.
В вашем проекте будут следующие файлы:
Файлы .h и .cpp содержат необходимые строки кода; файл .pro также завершён.
Мы начнём с проектирования интерфейса пользователя и затем перейдём к заполнению недостающего кода. В заключение мы добавим поиск.
Для начала проектирования интерфейса пользователя, щёлкните два раза на файле textfinder.ui в вашем обозревателе проекта. Это запустит интегрированный Qt Designer.
Спроектируйте форму выше с использованием QLabel, QLineEdit (назовите его lineEdit), QPushButton (назовите её findButton) и QTextEdit (назовите его textEdit). Мы рекомендуем вам использовать QGridLayout для расположения QLabel, QLineEdit и QPushButton. QTextEdit можно добавить в QVBoxLayout помимо QGridLayout. Если вы новичок в проектировании форм с Qt Designer, вы можете взглянуть на руководство по Qt Designer.
Файл textfinder.h уже имеет необходимые заголовочные файлы, конструктор, деструктор и объект 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() будет вызван автоматически в этой строчке:
QMetaObject::connectSlotsByName(TextFinder);
в файле ui_textfinder.h, сгенерированном uic.
Нам потребуется файл ресурсов (.qrc) в котором мы сохраним текстовый файл. Это может быть любой файл .txt с абзацем текста. Чтобы добавить файл ресурсов щёлкните правой кнопкой мыши на Файлы ресурсов в обозревателе проектов и выберите Добавить новый файл.... Вы увидите диалог мастера, показанный ниже.
Введите "textfinder" в поле Имя и используйте заданный Путь. Затем щёлкните Вперёд.
На этой странице вы можете выбрать в какой проект вы хотите добавить новый файл. Убедитесь, что пункт Добавить в проект выбран, а "TextFinder" выбран как Проект, и щёлкните на Завершить.
Ваш файл ресурсов будет отображён в редакторе ресурсов. Щёлкните на выпадающем списке Добавить и выберите Добавить приставку. Приставка, которая нам требуется, это просто косая черта (/). Щёлкните на Добавить снова, но на этот раз выберите Добавить файлы. Найдите текстовый файл, который вы хотите использовать, мы будем использовать input.txt.
Снимок экрана выше что вы можете ожидать после того как успешно добавили файл ресурсов.
Теперь, когда у вас есть все необходимые файлы, вы можете скомпилировать вашу программу, нажав на кнопку .
[Предыдущий: Создание проекта в Qt Creator] [Руководство по Qt Creator] [Следующий: Qt Creator и системы управления версиями]
Copyright © 2009 Nokia | Qt Creator 1.2.1 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |