- •Лабораторная работа №1
- •Москва 2023
- •Создать виджет с надписью «Архангельский м. В.», задать размер виджета, вывести его на экран. В качестве виджета использовать кнопку (объект button класса qPushButton).
- •Создать текстовую метку при помощи класса qLabel, в текстовой метке записать текст «Архангельский м. В.». Вывести сообщение с использованием указателей и класса qLabel.
- •Повторить предыдущий пункт задания без использования указателей.
- •Создать кнопку при помощи класса qPushButton с текстом «Архангельский м. В.». При нажатии на кнопку должно происходить завершение работы программы.
- •Используя события таймера, через каждые 200 мс выводить в текстовую метку сообщение «Архангельский м. В.».
- •Используя Qt Designer, разместить на форме объект класса qLabel (текстовую метку), в которую необходимо выводить текущее время (ежесекундно).
- •Используя объекты класса qFile, скопировать содержимое одного бинарного файла в другой блоками по 2 символа, при этом осуществить проверку на возможность открытия файлов для чтения и записи.
- •Повторить предыдущий пункт задания с использованием объектов класса qByteArray
- •Используя объекты класса qTextStream, построчно считать содержимое текстового файла и вывести его в консоль.
- •Повторить предыдущий пункт задания с использованием метода readAll(). Записать текстовую информацию в файл, предварительно отформатировав текст.
- •Контрольные вопросы
Создать кнопку при помощи класса qPushButton с текстом «Архангельский м. В.». При нажатии на кнопку должно происходить завершение работы программы.
/* В нашем задании мы связываем сигнал кнопки clicked() со слотом quit()
объекта приложения QApplication. Макросы SIGNAL() и SLOT() являются частью синтаксиса. */
Листинг 4. Содержание файла "main.cpp":
#include <QApplication> // подключили заголовочные файлы с определениями классов QApplication (приложение)
#include <QPushButton> // QPushButton (кнопка)
#include <QLabel> // QLabel (надпись)
int main(int argc, char *argv[ ]) //обычный для C++ заголовок главной функции main с аргументами командной строки;
{
QApplication app(argc, argv); /*
объявили переменную типа QApplication (приложение), передав
конструктору параметры командной строки, которые, возможно, указаны при
запуске программы (argc – число параметров, argv – указатель на массив
строковых значений) */
QPushButton *button1 = new QPushButton("Архангельский М. В.");
QObject::connect(button1, SIGNAL(clicked()), &app, SLOT(quit()));
button1->resize(150, 100);
button1->show();
return app.exec(); /* запустили цикл обработки событий, происходящих с
элементами
приложения. Пока в нашей программе никакие события не определены, кроме
стандартных реакций на действия пользователя (изменение размеров и
положения
окна, нажатие кнопок в строке заголовка) */
}
Рисунок 4. Главное окно приложения с кнопкой «Архангельский М. В.»
Создать объект класса QDate, содержащий текущую дату, создать объект класса QTime, содержащий текущее время, вывести полученную информацию о дате и времени в текстовую метку с использованием объектов класса QString.
Листинг 5. Содержание файла "main.cpp"
#include <QApplication> // подключили заголовочные файлы с определениями классов QApplication (приложение)
#include <QLabel> // QLabel (надпись)
#include <QDate> // QDate (Класс QDate представляет собой структуру данных для хранения дат и проведения с ними разного рода операций)
#include <QTime> // QTime( аналогичен классу QDate, используется для работы со временем)
#include <QDateTime> // QDateTime
int main(int argc, char *argv[ ]) //обычный для C++ заголовок главной функции main с аргументами командной строки;
{
QApplication app(argc, argv); /*
объявили переменную типа QApplication (приложение), передав
конструктору параметры командной строки, которые, возможно, указаны при
запуске программы (argc – число параметров, argv – указатель на массив
строковых значений) */
QDate Today = QDate::currentDate(); // создание объекта dateToday класса QDate. Для получения текущей даты нужно вызвать метод currentDate()
QTime Now = QTime::currentTime();// создание объекта Now класса QTime. Для получения текущего времени нужно вызвать метод currentTime()
QString str1; // создание объекта str1 класса QString для записи в него текущей даты
QString str2; // создание объекта str2 класса QString для записи в него текущего времени
QString str3; // создание объекта str3 класса QString для записи в него информации о текущей дате и времени
str1 = Today.toString("dd/MM/yyyy"); // Метод toString() позволяет получить текстовое представление даты в необходимом формате.
str2 = Now.toString("hh:mm:ss"); // Метод toString() позволяет получить текстовое представление времени в необходимом формате.
str3 = str1 + " " + str2; // Создание строки с информацией и о дате, и о времени, разделеных символами пробелов
QLabel label("<H2><CENTER>" + str3 + "<H2><CENTER>"); //создание объекта label класса QLabel
label.resize(400,200);
label.show();
return app.exec( ); /* запустили цикл обработки событий, происходящих с
элементами
приложения. Пока в нашей программе никакие события не определены, кроме
стандартных реакций на действия пользователя (изменение размеров и
положения
окна, нажатие кнопок в строке заголовка) */
}
Рисунок 5. Вывод информации о дате и времени в текстовую метку.