Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Q_OBJECT

public:

Counter() { value = 0; }

int getValue() const { return value; }

public slots:

void setValue(int val) { value = val; emit valueChanged(value); }

signals:

void valueChanged(int newVal);

private:

int value;

};

 

Тепер покажемо, як сигнал одного об’єкта можна підключити до слота іншого:

 

Counter src, dst;

QObject::connect(&src, SIGNAL(valueChanged(int)),

&dst, SLOT(setValue(int)));

 

Тепер перейдемо до написання тестової програми в середовищі Qt Creator. Обираємо меню File — New file of project. Обираємо Qt Console Application, вказуємо назву проекту та місце розташування каталогу проекту. Отримаємо проект з одним вихідним файлом main.cpp із заготовкою Qt-програми:

 

#include <QCoreApplication>

 

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

 

return a.exec();

}

 

Таким чином, виконання передається об’єкту QCoreApplication, що реалізує цикл обробки повідомлень у консольних програмах. Додамо код з лічильниками:

Результат виконання:

 

Загалом, для цього прикладу можна було б скористатись створенням порожнього проекту без QCoreApplication з його циклом обробки повідомлень, що запускається після виконання корисних дій. Оскльки нас більше цікавить графічний інтерфейс, створимо новий проект Qt Gui Application та проілюструємо створення елементів керування інтерфейсу користувача. Проект за замовчанням містить наступні файли:

 

 

Файл з розширенням “ui” зберігає опис елементів інтерфейсу користувача на формі. Він доступний для редагування в графічному режимі. Додамо на форму поле-лічильник та слайдер:

 

Знизу справа знаходиться редактор властивостей елементів керування (віджетів), знизу по центру (на одній із закладинок) редактор слотів та сигналів. Зверху знаходиться стрічка з перемикачами режимів редагування та упорядкування віджетів на формі. Пов’яжемо лічильник та слайдер так, щоб зміна значення в одному з них автоматично змінювала значення і в іншому. Для цього перейдемо в режим редагування сигналів та перетягнемо мишею стрілочку з одного віджета на інший.

 

 

Кінцевий результат поєднання сигналів та слотів:

 


Результат виконання:

 

 




Переглядів: 357

<== попередня сторінка | наступна сторінка ==>
Розробка тестової програми | Перехід до виконання роботи

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.