Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornyy_praktikum_po_programmirovaniyu_v_s...docx
Скачиваний:
0
Добавлен:
11.12.2019
Размер:
130.48 Кб
Скачать
  1. Лабораторная работа № 5

    1. Тема: «Главные окна. Меню. Работа с файлами»

    2. Пример 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. Сохраните файл ресурсов и запустите программу. Откройте файл и убедитесь, что текст файла отображается в окне.


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