50340

Использование библиотеки элементов графического интерфейса Qt

Лабораторная работа

Информатика, кибернетика и программирование

План простейшее графическое приложение на Qt работа с компоновщиками создание приложения ColorViewer использование QFileDilog создание простейшего обозревателя текста Инструкция по выполнению лабораторной работы Простейшее GUIприложение на Qt Рассмотрим следующий фрагмент кода представляющий простейшее GUIприложение созданное с использованием элементов Qt. QWidget базовый класс для всех элементов графического интерфейса виджетов в Qt начиная с кнопок и кончая сложными диалогами. Попробуйте добавить в корневой...

Русский

2014-01-21

111.5 KB

12 чел.

Лабораторная работа №13

«Использование библиотеки элементов
графического интерфейса Qt»

Цель лабораторной работы

Научиться использовать библиотеку элементов графического интерфейса Qt.

Введение

План

  •  простейшее графическое приложение на Qt
  •  работа с компоновщиками
  •  создание приложения ColorViewer
  •  использование QFileDialog - создание простейшего обозревателя текста

Инструкция по выполнению лабораторной работы

Простейшее GUI-приложение на Qt

Рассмотрим следующий фрагмент кода, представляющий простейшее GUI-приложение, созданное с использованием элементов Qt.

#include <QApplication>

#include <QWidget>

int main (int argc, char **argv)

{

QApplication app(argc, argv);

QWidget widget(0);

widget.show();

return app.exec();

}

В этом примере используются два фундаментальных Qt-класса:

  •  QApplication - это движок Qt-приложения и должен создаваться в единственном экземпляре в каждом графическом Qt-приложении. В консольных приложениях используется QCoreApplication. В QApplication запускается диспетчер сигналов и устанавливаются некоторые общие настройки приложения.
  •  QWidget- базовый класс для всех элементов графического интерфейса (виджетов) в Qt, начиная с кнопок и кончая сложными диалогами. Конструктор QWidget может принимать в качестве аргумента указатель на родительский QWidget. В случае, если передаётся «0», как в настоящем примере, виджет создаётся как самостоятельное окно в системе.

Итак, собрав и запустив пример в каталоге lab013/01, мы обнаружим, что было отображено пустое окно.

Компоновщики (Layout managers)

Мотивация использования. Следующий пример наглядно демонстрирует потребность в компоновщиках.

  •  Попробуйте добавить в корневой виджет в предыдущем примере несколько элементов типов QPushButton, QLabel, QTextEdit
    •  включите соответствующие заголовочные файлы, например,
    •  #include <QPushButton>
    •  создайте объекты, передав в конструкторе указатель на родительский widget
    •  QPushButton but1(&widget)
  •  Соберите и запустите приложение.

Обратите внимание, что все элементы были помещены в левый верхний угол.

Разумеется, все созданные нами дочерние виджеты, могут быть размещены в необходимых местах явно, при помощи задания координат и размеров, но такой метод в крайней степени неудобен и вынудит нас постоянно отслеживать изменения в размере родительского виджета, дабы перекомпоновать дочерние. Компоновщик, представленный общим классом QLayout, позволяет избежать этих проблем.

Работа с компоновщиками. Компоновщик отвечает за размещение виджетов в области компоновки в соответствии с некоторыми правилами компоновки. Изменение размеров области компоновки приводит обычно к перекомпоновке.

Рассмотрим виды простейших компоновщиков.

  •  QHBoxLayout, QVBoxLayout - размещает элементы в один ряд (вертикальный либо горизонтальный)

Рис. 6.4.2.

  •  QGridLayout - размещает элементы в ячейки таблицы

Рис. 6.4.1.

  •  QFormLayout - размещает элементы сверху вниз в две колонки. Такая организация интерфейса часто используется при заполнении различных форм, где одна колонка - описание, а другая - поле ввода)

Рис. 6.4.3.

Пример работы с компоновщиком

Рис. 6.4.4.

Задание (4 балла)

  •  пользуясь примером в каталоге lab13/02, создайте приложение с графическим интерфейсом, аналогичным представленному сверху
  •  используйте классы QLabel, QSpinBox, QSlider, QPlainTextEdit.

Знакомство с элементами интерфейса: добавим функциональность. (3 балла)

  •  Добавим функциональность созданному на предыдущем этапе приложению:
    •  спин-боксы и слайдеры будут перемещаться синхронизировано в диапазоне значений от 0 до 255.
    •  Цвет фона QPlainTextEdit будет меняться соответственно
  •  Выполнение:
    •  Выставляем диапазон допустимых значений для QSpinBox и QSlider при помощи методов setMinimum() и setMaximum()
    •  запрещаем ввод в текстовое поле: setEnabled(false)
    •  Реализуем метод setColor() и слоты setRed(int), setGreen(int), setBlue(int)
    •  к слотам подключаем сигналы QSlider::sliderMoved() и QSpinBox::valueChanged()
    •  в реализации слотов синхронизируем значения слайдера и спин-бокса и вызываем setColor()
  •  Для изменения цвета фона текстового поля воспользуемся таблицами стилей для описания стиля элементов.
    •  таблицы стилей используют синтаксис CSS
    •  будем задавать цвет в виде строки типа #rrggbb
    •  таким образом, надо задать QPlainTextEdit следующий стиль:
    •  QPlainTextEdit { background: #rrggbb; }
    •  задаём стиль при помощи метода setStyleSheet() (таблица стиля передаётся в виде строки).

Диалоги (3 балла)

Библиотека графических элементов Qt предлагает набор из нескольких полнофункциональных диалоговых окон, позволяющих выполнять некоторые стандартные операции. Среди них такие, как выбор файла в файловой системе, выбор шрифта, выбор цвета, диалог печати и некоторые другие. Мы рассмотрим в настоящей работе пример использования диалога выбора файла - QFileDialog.

Создаём простейший обозреватель текстовых файлов.

  •  Создайте новый виджет и поместите на него элемент QTextEdit.
  •  Добавьте кнопку QPushButton и подключите её сигнал clicked() к слоту openFile()
  •  Реализуйте в слоте выбор имени файла пользователем: QFileDialog::getOpenFileName()
  •  Откройте QFile в соответствии с выбранным названием
  •  Прочитайте его содержимое и поместите в виде текста в элемент QTextEdit


 

А также другие работы, которые могут Вас заинтересовать

46456. Анализ и диагностика затрат предприятия 16.34 KB
  Затраты образующие себестоимость продукции группируются в соответствии с их экологическим содержанием по следующим элементам: материальные затраты; затраты на оплату труда; отчисления на социальные нужды; амортизация основных фондов; Материальные затраты наиболее крупный элемент затрат на производство. Их доля в общей сумме затрат составляет 6080 лишь в добывающих отраслях промышленности она невелика. Состав материальных затрат неоднороден и включает расходы на сырье материалы за вычетом стоимости возвратных отходов по цене их...
46457. Фразеология как раздел языкознания: виды фразеологических словосочетаний (сращения, единства, сочетания) и принципы их выделения 16.4 KB
  Фразеология как раздел языкознания: виды фразеологических словосочетаний сращения единства сочетания и принципы их выделения. Эти слова образуют свободные сочетания. Другие слова имеют ограничения в возможностях сочетания. Такие сочетания называют фразеологизмами.
46458. СССР в середине 60-х — середине 80-х гг. (неосталинизм, застой, кризис системы) 16.42 KB
  Экономическая реформа разработка и реализация которой была связана с именем Председателя Совета Министров СССР А. Тупик опасный ибо отрыв развитых экономик мира от экономики СССР неуклонно увеличивался. Их идеологическим обоснованием стала концепция развитого социализма согласно которой медленное планомерное постепенное совершенствование реального социализма построенного в СССР полностью и окончательно займет целую историческую эпоху. эта концепция была законодательно закреплена в преамбуле новой Конституции СССР.
46459. Процедуры банкротства 16.43 KB
  Наблюдение является процедурой направленной на обеспечение сохранности имущества должника и проведение тщательного анализа его финансового состояния для поиска возможности восстановления платежеспособности предприятия. Данная процедура вводится с момента принятия Арбитражным судом заявления о признании должника банкротом на срок до 7 месяцев. исполнительные документы выданные на основании судебных решений; запрещается выплата дивидендов; не допускается прекращение денежных обязательств должника путем зачета встречного...
46460. Эльконин. Психология обучения младшего школьника 16.45 KB
  Психология обучения младшего школьника Введение Начальная школа ставит перед собой задачу формирования способности к усвоению системы научных знаний превращается в подготовительную ступень органически связанную со всеми остальными высшими ступенями образования. Главный итог исследований экспериментально подтвержденная возможность формирования при некоторых условиях обучения значительно более высоких уровней психического развития в младшем школьном возрасте. Определяющие факторы при этом содержание обучения и органически с ним...
46461. Анализ деловой активности 16.47 KB
  Повышение деловой активности любого предприятия проявляется в расширении сферы обслуживания или рынка сбыта увеличении номенклатуры товаров и услуг и ее успешной реализации стабильном развитии профессиональное личностное развитие штата работников предприятия эффективности использования всей базы ресурсов финансы персонал сырье. Для того чтобы определить уровень деловой активности предприятия необходимо провести полноценный грамотный анализ. В данном случае анализу подвергаются уровни и динамика определенных финансовых...
46462. Февральская революция 1917 года в России 16.52 KB
  не решила экономических политических и классовых противоречий в стране то она явилась предпосылкой февральской революции 1917 года. Причинами февральской революции 1917 года явились антивоенные настроения тяжелое положение рабочих и крестьян политическое бесправие спад авторитета самодержавной власти и ее неспособность провести реформы. Основные события февральской революции произошли стремительно. 26 февраля 1917 года стало началом февральской революции.
46463. Метод капитализации при оценке стоимости недвижимости 16.56 KB
  При использовании метода капитализации доходов в стоимость недвижимости преобразуется доход за один временной период а при использовании метода дисконтированных денежных потоков доход от ее предполагаемого использования за ряд прогнозных лет а также выручка от перепродажи объекта недвижимости в конце прогнозного периода. является стоимостью всего объекта недвижимости. Базовая формула расчета имеет следующий вид: или где С стоимость объекта недвижимости ден.