_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «ИННОВАЦИОННАЯ НАУКА» №7-8/2016 ISSN 2410-6070_
дополнительное место в помещении котельной, организовать механизм поддержания вакуума в установке -это требует дополнительных капитальных вложений и увеличивает расход электроэнергии на установку.
Более экономичным и не менее эффективным является второй вариант - использование реагента для связывания растворенного в воде кислорода [4, c.5]. Установка состоит из небольшой емкости с реагентом, который с помощью насоса-дозатора по отдельной трубке подается в трубопровод сетевой воды. Такая система позволяет полностью в автоматическом режиме обеспечить подготовку сетевой воды при минимальных дополнительных затратах и соответственно является более предпочтительной, но требует периодического контроля за уровнем реагента в сетевой воде. Список использованной литературы:
1. Байков И.Р., Смородов Е.А., Шакиров Б.М. Принципы реконструкции системы энергоснабжения населенных пунктов//Известия высших учебных заведений. Проблемы энергетики.- 2001. - №9. - С.77.
2. Кунсбаев У.А., Трофимов А.Ю. Модернизация водогрейной котельной// Трубопроводный транспорт -2016: в сборнике Материалы XI Международной учебно-научно-практической конференции. 2016.- С.368-369.
3. Трофимов А.Ю., Бурдыгина Е.В., Смородова О.В., Сулейманов А.М. Тепловой расчет котельного агрегата/Учебное пособие: Уфа, 2007. - С.106.
4. Новоселов И.В., Костарева С.Н. Умягчение воды методом Na-катионирования/Учебное пособие: Уфа, 2008.- С.48.
© Баимова Д.И., 2016
УДК62
Н.А.Борсук
КФ МГТУ им. Н.Э. Баумана
РАЗРАБОТКА ИНТЕРФЕЙСА ПРИЛОЖЕНИЯ СОСТАВЛЕНИЯ РАСПИСАНИЯ УЧЕБНЫХ ЗАНЯТИЙ
Данное приложение имеет следующий интерфейс: строка с текущим временем и датой, информацией о неделе, текущей паре, ниже будет размещаться таблица с расписанием. Переключение между расписанием по числителю и знаменателю осуществляется с помощью перехода между вкладок. Интерфейс в Qt Creator реализован программно с помощью соответствующих функций. Данный метод позволяет создать гибкий интерфейс, который будет подстраиваться под ширину экрана устройства.
В Qt Creator методы и переменные принято создавать в заголовочных файлах с расширением .h. QGridLayout отвечает за слой, на котором будут располагаться все дочерние элементы интерфейса. В Qt также существуют и другие layout, которые отличаются способом размещения элементов. QGridLayout располагает элементы в виде двумерной таблицы, которая поддерживает слияние ячеек.
Для вывода текущего времени используется класс QTimer, в котором есть ряд функций. Можно воспользоваться функцией start(int msec), которая принимает один параметр - количество миллисекунд, через которое будет вырабатываться сигнал timeout. Обрабатывая этот сигнал, можно обновлять текущее время на экране, а также автоматически обновлять данные в таблице с расписанием.
На первоначальном этапе разработки ввод расписания осуществляется статически через исходный код программы.
Для задания таблицы используется класс QTableWidget. Это таблицы с расписанием по числителю.
Завершающим этапом реализации интерфейса приложения является реализации прокрутки таблицы с расписанием методом «проведения пальца» на сенсорном экране. Данная возможность реализована с помощью класса QScroller.
_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «ИННОВАЦИОННАЯ НАУКА» №7-8/2016 ISSN 2410-6070_
Далее рассмотрим реализацию функции вывода текущего времени на экран. Использование объекта класса QTimer гораздо проще, чем использование события таймера, определенного в классе QObject. К недостаткам работы с событием таймера относится необходимость наследования одного из классов наследующих QObject. Затем, в унаследованном классе нужно реализовать метод, принимающий объекты события таймера. А если в объекте создается более одного таймера, то возникает необходимость различать таймеры, чтобы узнать, который из них явился инициатором события.
Для ликвидации этих неудобств Qt предоставляет класс таймера QTimer, являющийся непосредственным наследником класса QObject.
Предоставляет регулярные таймеры, которые по истечении заданного промежутка времени посылают сигнал timeout(). При этом класс имеет статический метод singleShot(), он посылает сигнал через заданный промежуток времени лишь один раз. События таймера будут доставлять только тогда, когда работает цикл обработки событий.
Для использования нужно подключить #include <QTimer>
Включает в себя public-функции:
• int interval() - возвращает числовое(т^) значение установленного интервала таймера в миллисекундах
• int remainingTime() - возвращает оставшееся время в миллисекундах
• bool isActive() - возвращает логическое(Ьоо1) значение true, если таймер запущен
• bool isSingleShot() - возвращает true, если таймер включен для срабатывания только один раз
• void setInterval(int msec) - позволяет установить интервал таймера, где msec - время в миллисекундах
• void setSingleShot(bool singleShot)
• void setTimerType(Qt::TimerType atype) - устанавливает тип таймера
• int timerId() - возвращает id таймера
• Qt::TimerType timerType() - возвращает тип таймера
Включает в себя слоты start() и stop(), которые запускают и останавливают таймер соответственно. У слота start() есть одна перегрузка - start(int msec), которая через msec миллисекунд запускает таймер, если таймер не запущен, в противном случае таймер останавливается и запускается снова.
Имеет сигнал timeout(), который посылается во время срабатывания таймера.
По истечении интервала запуска таймера высылается сигнал timeout(), который соединен со слотом, выполняющим нужные действия. При помощи метода setInterval() можно изменить интервал запуска таймера. В том случае, если таймер был активен, он будет остановлен и запущен с новым интервалом, и ему будет присвоен новый идентификационный номер.
При помощи метода isActive() можно проверить, находится ли таймер в активном состоянии. Вызовом метода stop() можно остановить таймер.
Отображаемая информация актуализируется в соответствии с установленным полусекундным интервалом запуска таймера.
По сигналу timeout будет вызываться метод (слом) onTimeOut, в котором обновляется текст в QLabel timeHeader, то есть время и дата, а также реализовано изменение ширины интерфейса таблицы, если будет меняться размер экрана (например, пользователь изменил ориентацию экрана и необходимо подогнать размер таблицы под новую ширину экрана).
Далее будут рассматриваться вопросы загрузки множества расписаний, редактирования расписания, занесения заметок.
© Борсук Н А., 2016