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


 

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

39846. Форма и формообразование. Тела вращения. Операция Выдавливание 2.9 MB
  Тела вращения. Тела вращения. Тела вращения. Операция Выдавливание Цель работы: Построение моделей с помощью операции вращения: цилиндрический стакан конус шар.
39847. Организуем компьютерное рабочее место 1.23 MB
  Настройка параметров новых документов. Настройка параметров системы КОМПАС3D LT означает выбор параметров оформления чертежа в соответствии с Единой системой конструкторской документации ЕСКД которые наилучшим образом соответствуют выбранному вами формату чертежа. Ранее вы уже познакомились с некоторыми принципами настройки параметров системы см.
39848. ЭКОНОМИКА, И УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ 718.5 KB
  Именно на этом уровне создается нужные обществу товары и услуги, выпуск необходимой продукции. На предприятии сосредоточены наиболее квалифицированные кадры. Здесь решаются вопросы экономного расходования ресурсов, применение высокопроизводительной техники, технологии.
39849. Назначение и принцип действия изделия, сборочной единицы, в которую входит деталь 758 KB
  Форма детали позволяет получать заготовку простой формы с минимальными припусками.25 Диаметр отверстия шпинделя мм 55 Внутренний конус шпинделя Морзе 6 Частота вращения шпинделя мин 1 12.1000 Частота вращения шпинделя мин.9 Скорость быстрых перемещений суппорта мм мин.
39850. Проектирование участка механической обработки для изготовления детали узла 53-320-ГОСТ 387 KB
  Проектируемые и реализуемые производственные процессы должны обеспечивать решение следующих задач: выпуск продукции необходимого качества, без которого затраченные на неё труд и материальные ресурсы будут израсходованы бесполезно; выпуск требуемого количества изделий в заданный срок при минимальных затратах живого труда и вложенных капитальных затратах.
39851. Проектирование участка механической обработки деталей узла Мотоблока 1.61 MB
  Развитие и повышение эффективности машиностроения возможно при существенном росте уровня автоматизации производственного процесса. В последние годы широкое распространение получили работы по созданию новых высокоэффективных автоматизированных механосборочных производств и реконструкции действующих производств
39852. Проектирование участка механической обработки детали узла 58-308-00СБ Деталь: Вал-шестерня 58-308-01 N=400 шт 2 MB
  В связи с изменением методов проектирования и структуры технологической оснастке и широкое применение получит оснастка многократного использования. Опыт работы заводов показывает, что внедрение переналаживаемых станочных приспособлений в 2-3 раза сокращает трудоемкость проектирование и в 3-4 раза цикл изготовления станочных приспособлений.
39854. Разработка технологического процесса механической обработки деталей узла Редуктор - 338 – Б – 0002 1.34 MB
  Проектируемые и реализуемые производственные процессы должны обеспечивать решение следующих задач: выпуск продукции необходимого качества, без которого затраченные на неё труд и материальные ресурсы будут израсходованы бесполезно; выпуск требуемого количества изделий в заданный срок при минимальных затратах живого труда и вложенных капитальных затратах.