ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.12.2023
Просмотров: 73
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| МИНОБРНАУКИ РОССИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Балтийский государственный технический университет «ВОЕНМЕХ» им. Д.Ф. Устинова» (БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова») |
| БГТУ.СМК-Ф-4.2-К5-01 |
| Факультет | | О | | Естественнонаучный |
| | | шифр | | наименование |
| Кафедра | | О7 | | Информационные системы и программная инженерия |
| | | шифр | | наименование |
| Дисциплина | | Визуальное программирование | ||
| Выполнил студент группы | | И596 | ||||
| Полозов Данил Михайлович | ||||||
| Фамилия И.О. | ||||||
| | | | ||||
| Фамилия И.О. Подпись | ||||||
| Оценка | | | ||||
| «_____» | | 2022г. | ||||
САНКТ-ПЕТЕРБУРГ 2022 г.Цель работы: обучится создавать простейшие пользовательские интерфейсы с использованием Qt Designer и Qt Creator; ознакомиться с языком QML для создания простых кнопочных форм.Постановка задачи:Создать три приложения с пользовательским интерфейсом в соответствии с индивидуальным вариантом задания.
-
Первое приложение должно быть создано используя Qt Designer и файлы форм *.ui. -
Второе приложение должно быть создано используя Qt Creator (использование Qt Designer не допускается). Весь интерфейс должен быть создан в конструкторе класса основного окна. -
Третье приложение ...
Рисунок 2 – Вид окна приложения в Qt DesignerРисунок 3 – Панель «Редактор сигналов и слотов»2 Создание приложения в QtCreatorСоздадим новое приложение, выбрав в Qt Creator пункт меню «Файл → Новый файл или проект... → GUI приложение Qt». В левой панели откроем раздел «Редактор». Теперь мы можем увидеть список автоматически сгенерированных файлов проекта.Рисунок 4 – Список исходных файлов нового проектаСодержимое файла «main.cpp» оставим без изменений: главная функция приложения выполняет лишь показ окна и запуск приложения. Требуемые по заданию изменения относятся к файлам класса MainWindow.Начнём с описания изменений заголовочного файла «mainwindow.h». Так как в заголовочном файле уже описана основная структура окна приложения, то нам остаётся лишь добавить подключение библиотеки виджетов «QtWindgets» и создать указатели на используемые виджеты: QTextEdit * textEdit для виджета ввода текста, QPushButton * button для кнопки закрытия приложения, QAction * action_1 и QAction * action_2 для пунктов меню, QToolBar * toolbar для панели меню и QVBoxLayout * layout для размещения виджетов на полотне окна приложения. Ниже представлен текст файла «mainwindow.h», добавленные строки выделены цветом.#ifndef MAINWINDOW_H#define MAINWINDOW_H#include
#include
namespace Ui { class MainWindow; }
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
MainWindow();
private:
Ui::MainWindow *ui;
QTextEdit * textEdit;
QPushButton * button;
QAction * action_1;
QAction * action_2;
QToolBar * toolBar;
QVBoxLayout * layout;
};
#endif // MAINWINDOW_H
Изменения в файле «mainwindow.cpp» также относятся к реализации виджетов и механизмов сигнал-слот. Для начала укажем функцией setWindowTitle имя окна приложения в конструкторе класса MainWindow. Далее для всех указателей на виджеты, что были объявлены в заголовочном файле класса MainWindow, создадим объекты виджетов через их конструкторы. Привяжем к полотну окна приложения layout редактор текста и кнопку закрытия окна, а после сделаем виджет layout главным в приложении. Функцией addToolBar добавим новую панель меню и привяжем к ней пункты action_1 и action_2. В деструкторе окна укажем, что созданные объекты виджетов удаляются вместе с окном. В конструкте класса MainWindow также вызовем метод connect класса QObject и свяжем сигналы и слоты для кнопки «Закрыть» и пунктов панели меню.
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow (QWidget * parent)
: QMainWindow (parent), ui (new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle ("Simple text editor");
textEdit = new QTextEdit ();
button = new QPushButton ("Закрыть");
action_1 = new QAction ("Очистить", nullptr);
action_2 = new QAction ("Закрыть", nullptr);
toolBar = new QToolBar ();
layout = new QVBoxLayout ();
layout->addWidget (textEdit);
layout->addWidget (button);
centralWidget()->setLayout (layout);
addToolBar (Qt::TopToolBarArea, toolBar);
toolBar->addAction (action_1);
toolBar->addAction (action_2);
QObject::connect(action_1, SIGNAL(triggered()), textEdit, SLOT(clear()));
QObject::connect(action_2, SIGNAL(triggered()), this, SLOT(close()));
QObject::connect(button, SIGNAL(clicked() ), this, SLOT(close()));
}
MainWindow::MainWindow () {
delete ui;
delete textEdit;
delete button;
delete action_1;
delete action_2;
delete toolBar;
delete layout;
}
Скомпилируем и запустим приложение. Результат выполнения отображён на рисунке 5.
Рисунок 5 – Вид окна приложения, созданного в Qt Creator
ВЫВОДЫ
В результате работы мы ознакомились с работой в IDE QtCreator, научились создавать простейшие приложения с помощью готовых форм в QtDesigner и с программированием форм в текстовом редакторе QtCreator, было создано простое приложение для ввода и редактирования текста.