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

Лабораторная работа № 5 Тема: «Главные окна. Меню. Работа с файлами» Пример 1: программа, которая считывает текст из файла и выво­дит его в главном окне; используется файл ресурсов.

Создайте проект на базе класса QMainWindow.

В этой программе мы будем использовать команды меню «Открыть файл» и «Выход» и соответствующие иконки на панели инструментов. Используя команду операционной системы «Search for Files>, найдите файлы fileopen.png и exit.png. Скопируйте эти файлы в папку проекта.

Графические изображения и другие ресурсы лучше хранить в самом испол­няемом файле программы.

Для подключения файлов к ресурсам программы вернитесь в Qt Creator и выберите в меню File | New File or Project. Нам нужно создать файл ресурсов. Для этого выберите в появившемся окне Qt | Qt Resource file и нажмите Choose.

В появившемся окне Choose the Location нужно задать имя файла ресурсов (например res) и путь к этому файлу (оставьте установленный по умолчанию путь к папке Вышего проекта). Нажмите кнопу <Next>.

В следующем окне нажмите <Finish>.

Появится окно редактирования файла ресурсов. Расширение имени файла ресурсов — qrc, поэтому в заголовке окна должно быть указано res.qrc.

Нажмите кнопку <Add> в этом окне и в выпадающем меню - <Add Prefix>.

Обычно в качестве префикса используют Slash (/). Задайте Prefix как пока­зано на рисунке.

Щелкните опять по кнопке Add и выберите Add Files. В появившемя окне выделите имена файлов-рисунков (*.png) и щелкните по кнопке <Open>. Имена файлов должны появиться в окне для работы с ресурсами. Сохраните файл ресурсов (Ctrl+s) и закройте окно ресурсов (Ctrl+w).

Вернитесь к проектированию окна программы.

Окно типа QMainWindow содержит вверху полоску меню и на ней заготовку кнопки с надписью Type Here. Сделайте двойной щелчок мышью по этой кнопке и напишите имя команды: Файл. Нажмите <Enter>. Появится заготовка выпадающе­го меню.

В выпадающем меню сделайте двойной щелчок по заготовке кнопки с надписью Type Here, напишите: Открыть файл и нажмите <Enter>. После этого сделайте двойной щелчок по расположенной ни­же кнопке <Add Separator>, в результате будет добавлен раз­делитель между кнопками вы­падающего меню.

В свойствах созданной кнопки (справа) задайте свойство objectName: actionOpen (команды выпадающе­го меню называются actions (действия)).

Сделайте двойной щелчок по следующей заготовке кнопки (по надписи Type Here) и задайте название команды: Выход и идентификатор objectName: actionQuit.

Под проектом окна программы располагается окно со вкладкой Action Editor. Перейдите на эту вкладку. Вы увидите список созданных действий.

Сделайте двойной щелчок по строке аctionOpen. Откроется окно редактиро­вания свойств соответствующей кнопки. В этом окне в строке Icon: щелкните по кнопке с тремя точками.

Откроется окно Select Resource. Щелкните по строке <resource root> , должны появиться значки.

Выберите нужный значок для команды ищелкните по кнопке <OK>.

В текущем окне выделите окно с надписью Shortcut и нажмите комбинацию клавиш, которая будет активизировать команду (например Ctrl + О) (буква латинская). Название «горячих клавиш» автоматически отобразится в этом окне и будет отображаться рядом с названием команды меню во время выполнения программы. Для того, чтобы убрать «горячую клавишу» используйте расположенную справа кнопку с красной стрелочкой.

Нажмите <OK>.

Проделайте те же действия для строки actionQuit. Установите клавишу <Esc> для вызова команды «Выход». Нажмите <OK>.

Теперь для каждой команды будет установлен значок.

Перетащите мышью значки команд из окна Action Editor в заготовку окна программы на полоску панели инструментов, располагающуюся под меню.

Накройте рабочую поверхность окна элементом text Edit, с его помощью мы будем отображать текст файла.

Т еперь проект окна дол­жен иметь вид как на рисунке.

Перейдите в окно, располагающееся под проектом окна программы на вкла­дку «Signals & Slots Editor». Добавьте новую связь, щелкнув по зеленому крестику.

Свяжите сигнал triggered() (вызвана) кнопки с идентификатором actionQuit со слотом close() для главного окна.

Отредактируйте файл main.cpp как показано на рисунке.

#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.move(400,200); // перемещаем окно по экрану
    w.show();
    return a.exec();
}

Запустите приложение и проверьте работу команды «Выход» (в том числе и клавишу <Esc>).

Вернитесь к проектированию окна программы.

В окне редактирования команд меню перейдите на вкладку Action Editor.

Щелкните правой кнопкой мыши по команде actionOpen и в контекстном меню выберите Go to slot. Создайте слот для сигнала triggered().

В начало файла mainwindow.cpp добавьте команды:

#include <QFile>
#include <QTextCodec>

Отредактируйте текст слота как показано ниже.

void MainWindow::on_actionOpen_triggered()
{
QTextCodec* codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForCStrings(codec);
    QFile file(":/test.txt"); /* объявляем файл, файл мы будем брать из ресурсов программы (на это указывает префикс « :/ » в имени файла  */
    if (file.exists()) // если файл найден
    {
        file.open(QIODevice::ReadOnly|QIODevice::Text); 
// открываем его
        QString text = file.readAll(); // считываем весь текст
        ui->textEdit->setText(text); // выводим текст файла на экран
    }
    else
        ui->textEdit->setText("Файл не найден");  
}

Создайте текстовый файл для проверки работы программы. Для этого в окне Qt Creator вызовите команду File | New File or Project. В появившемся окне выбери­те General | Text File и нажмите кнопку Choose. На следующем шаге задайте имя файла test. Выберите каталог, в котором содержится исполняемый файл Вашей программы (он будет открываться первым), и нажмите кнопку <Next>. На следую­щем шаге нажмите <Finish>.

В появившемся окне напишите 3-4 строчки текста и сохраните файл.

Наша первая программа будет работать с одним конкретным файлом. Чтобы не указывать полный путь к файлу, можно включить его в ресурсы программы. В окне, отображающем структуру проекта, в разделе Resources сделайте двойной щелчок по имени файла ресурсов (res.qrc) и добавьте файл в ресурсы с помощью кнопки Add. Сохраните файл ресурсов и запустите программу. Откройте файл и убедитесь, что текст файла отображается в окне.


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