Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Qt.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.93 Mб
Скачать

3. Создать объект файла (qFile).

Один из конструкторов QFile принимает имя файла в качестве параметра:

QFile::QFile(const QString & - имя файла)

Созданный объект привязан к файлу, но файл при этом не открывается — он должен быть открыт методом open().

4. Открыть файл (qFile).

QFile::open(

– OpenMode – режим доступа:

QIODevice::ReadOnly – только для чтения;

QIODevice::WriteOnly – только для записи, имеющиеся данные затираются;

QIODevice::ReadWrite – для чтения и записи, новые данные добавляются к уже существующим;

QIODevice::Append – Открыть файл для дополнения файла в конец;

дополнительно может указываться QIODevice::Text для взаимодействия с файлом в текстовом режиме (через операцию побитового ИЛИ)

) возвращает bool – успешно ли открытие.

5. Создать поток для ввода/вывода (qDataStream или qTextStream) и связать его с файлом.

Используя объект файла (QFile), можно читать и записывать данные, хранящиеся в файле. Однако чтение/запись выполняется на низком уровне – побайтово. Для высокоуровневой работы с файлом (чтения/записи чисел, строк, дат и т.д.) используются потоки. В библиотеке Qt потоки ввода/вывода представлены классами:

– QDataStream – записывает и читает данные в двоичном формате;

– QTextStream – записывает и читает данные в текстовом формате.

Чтобы поток мог читать и записывать данные в файл он должен быть связан с объектом файла. Связь потока с файлом осуществляется при создании потока - в конструктор потока передается указатель на объект файла.

if (!Filename.isEmpty()) // если имя файла задано

{QFile MyFile(Filename); // Создаем файл

if (MyFile.open(QIODevice::WriteOnly)) {QDataStream output(&MyFile);} }

// Открываем файл только для записи и создаем поток для записи данных

Не забудьте их подключить, если они вам необходимы:

#include <QDataStream>

#include <QTextStream>

Пример, ввести в поток output строку str и число N:

QTextStream out(&file); QString str=”Текст”; int N=2; output << str << N;

6. Считать/записать данные с использованием потока (qDataStream или qTextStream).

Ввод (чтение) из потока осуществляется через перегруженную операцию >>:

поток >> переменная_для_ввода;

Несколько операций ввода могут быть записаны в цепочку:

поток >> переменная1 >> переменная2;

Вывод (запись) в поток осуществляется аналогичным образом с использованием операции <<.

Операции ввода/вывода в поток сами определяют тип вводимых/выводимых данных и действуют соответственно.

7. Закрыть файл (qFile).

Пример:

QFile file("c://test.txt"); //либо

File = QFileDialog::getOpenFileName(this, QString("Открыть файл"), QString(),QString("Текстовые файлы (*.txt,*.bat);; Все файлы (*.*)"));

file.open(QIODevice::Append | QIODevice::Text);

QTextStream out(&file); QString str=”Текст”;

out<<str; out<<"\n";

file.close();

Практическая часть

3.1. Создание полноценного текстового редактора

3.1.1. Создание меню

Наших знаний уже достаточно для создания полноценного приложения.

1. Для начала создадим новый проект. Так как до этого мы создавали почти все с нуля, вручную подключали формы и полностью вникли в этот процесс, то воспользуемся мастером.

Выберите Файл - Новый файл или проект…, а там Приложения - Приложение  Qt Widgets.

Рис. 3.2. Создание проекта с помощью мастера

Зададим имя для проекта: QReader.

Напоминаем – следует избегать в пути размещения символов кириллицы.

Нажмите Далее. Нам предложат выбрать для какой платформы будет создано наше приложение, но мы пока не собираемся заниматься разработками для мобильных телефонов, поэтому просто еще раз нажмем Далее.

Рис. 3.3. Создание проекта, в который уже будет включена форма,

с использованием мастера

Пред нами предстанет информация о генерируемой форме (рис. 3.4), если внимательно изучить это окно, то можно понять, что предыдущее приложение (диалоговое окно) мы могли создать тремя кликами мыши. Ничего не меняйте просто опять нажмите Далее и Завершить.

Проект готов. Можете посмотреть сгенерированные файлы и запустить приложение. Должно работать.

Рис. 3.4. Информация о классе главного окна

2. Перейдем собственно к созданию меню. Щелкните дважды на форме mainwindow.ui – откроется визуальный редактор. Найдите глазами слова Пишите здесь и последуйте этому указанию.

Рис. 3.5. Редактирование главного окна

Создайте стандартное меню Файл с пунктами Новый, Открыть, Сохранить, Сохранить как…, Выход.

Между Сохранить как… и Выход добавьте разделитель.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]