|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
|
Каталог статей
Знакомство с Qt - таймер
Иногда в жизни происходят трудно объяснимые вещи. Началось с того, что я решился начать работать с контроллером STM32. Начало понравилось, а когда решил попробовать связь с ПК по RS232 порыскав в Интернете набрел на сайт http://microtechnics.ru/qt-ustanovka-biblioteki-qtserialport/ и там открыл для себя Qt. До сих пор не могу сам себе ответить, как имея профильное образование, вроде отслеживая все новости в мире электроники можно было не замечать существующий рядом этот прекрасный мир. Qt является инструментом для создания кросс-платформенных приложений и использует в своей основе язык программирования С++. Хватит лирики, для начала необходимо зайти на сайт http://qt-project.org/downloads скачать дистрибутив под вашу ОС и установить. Для себя я установил Qt Creator 2.8.1 for Windows , он содержит массу вкусностей включая интегрированный дизайнер и редактор. Если вашим выбором будет Qt 5.1.1 то дизайнер будет и в виде отдельного приложения. После установки желательно прописать пути в системные переменные среды (касается при установке под Windows) процесс великолепно описан в первой ссылке текста. Перейду к моим первым экспериментам с таймером. Для начала создадим новый проект, напомню работаю с Qt Creator 2.4.1 основан на Qt 4.7.4 , выбираем (как вариант) [файл]->[новый файл или проект]. В открывшемся окне слева выбираем [проект Qt Widget] затем справа [GUI приложение Qt]. Далее даем название проекту, затем выпираем путь к нему, у меня путь C:\QtProject. В следующем окне можно оставить все по умолчанию, а затем в очередном окне желательно указать под себя имя класса, далее программа сообщит вам список создаваемых файлов проекта. Идем далее и попадаем в наш проект. Раскроем все папки проекта, наблюдаем пять созданных системой файлов: файл с именем проекта расширение .pro, заголовочный mainwindow.h, исходники main.cpp, mainwindow.cpp, а также файл формы mainwindow.ui. С учетом того, что Qt прямой приемник C++ выполним следующее: 1. добавим в наш исходный файл mainwindow.cpp, класс таймера третьей строчкой кода: #include. 2. Выполним еще одно обязательное условие создадим экземпляр таймера, опишим сигнал и слот необходимый для передачи управления при срабатывании таймера, зададим время задержки После строки ui->setupUi(this); дописываем: QTimer* timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()) ); timer ->start(500);
3. переходим к заголовочному файлу mainwindow.h и добавляем строку public slots: ниже допишим описание функции void onTimeout(); затем это важно! Устанавливаем курсор мыши сразу за знаком «;» нажимаем правую кнопку выбираем «Рефакторинг->добавить реализацию…» тем самым автоматически создадим заготовку функции void MainWindow::onTimeout() в нашем исходнике.
4. делаем двойной клик на файле формы mainwindow.ui. и бросим на нашу форму виджет Label, растянем рамку виджета и немного наведем красоту как на мой вкус: при активном виджете в строке поиск зададим «font» откроем и выберем нужный шрифт и размер, в поиске зададим «palette», выберем изменить палитру и в поле «WindowText» установим нужный цвет текста.
5. вернемся в наш исходник, в тело функции void MainWindow::onTimeout() добавим строку : ui->label->setText(QString::number(rand()%20)); задав тем самым генерацию и вывод случайных чисел от 0 до 20. Вот в общем и все запускаем на выполнение и в случае успеха наблюдаем случайные числа с интервалом 500 миллисекунд.
Тексты исходников: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT
public: explicit MainWindow(QWidget *parent = 0); ~MainWindow();
private: Ui::MainWindow *ui; public slots: void onTimeout(); }; #endif // MAINWINDOW_H
mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QTimer> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QTimer* timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()) ); timer ->start(500); } MainWindow::~MainWindow() { delete ui; } void MainWindow::onTimeout() { ui->label->setText(QString::number(rand()%20)); }
Цветом выделены добавленные строки.
В этот пример попало: создание приложения, использование таймера, генерация и вывод случайного числа, изменение типа, размера и цвета щрифта в виджете.
Исходники проекта можно скачать здесь
Литература: QT4: программирование GUI на C++
Жасмин Бланшет Марк Саммерфилд
Qt4.5 Профессиональное програмирование
на C++ Макс Шлее.
книги содержат диски с исходниками примеров.
|
Категория: Мои статьи | Добавил: avu2 (17.10.2013)
|
Просмотров: 3649
| Рейтинг: 0.0/0 |
|
|