Використання windows api в qt, програмування qt

Зміст

Програма, вікно якої показано на малюнку, демонструє можливість використання для графічного виведення в ОС Windows функцій GDI (Graphical Device Interface, інтерфейс графічного пристрою). При натисканні правої кнопки миші в області вікна програми здійснюється виклик вікна повідомлення за допомогою Windows API.

Вище наведено спеціальний метод обробки подій для ОС Windows - winEvent (). Якщо не потрібно подальшої обробки події за допомогою Qt. то з цього методу потрібно повернути значення true. Реалізація цього методу, за своєю суттю, дуже схожа на реалізацію віконної функції ОС Windows. У нашому випадку проводиться відстеження події натискання правої кнопки миші і, в разі натискання, викликається функція MessageBox () з Windows API, що відображає вікно повідомлення. Першим параметром в цю функцію, як батьківського вікна, передається значення, що повертається методом winId (). Метод підтримується для всіх платформ і, в разі ОС Windows, повертає ідентифікаційний номер вікна, відповідний типу hwnd (покажчик на вікно).

У методі події перемальовування paintEvent () проводиться відображення написи і еліпса за допомогою функцій GDI. Зверніть увагу на виклик методу getDC () об'єкта класу QPaintEngine. Він повертає значення типу hdc (покажчик на Device Context, контекст пристрою), яке потрібно для функцій GDI, щоб вони могли проводити малювання. Після закінчення малювання ми викликаємо з об'єкта QPaintEngine метод releaseDC (). в який передаємо наш дескриптор контексту GDI (змінна hdc) для його закриття.

Так само, як і в разі ОС Windows, в UNIX Qt надає можливість доступу до подій на низькому рівні. Клас QWidget містить метод x11Event (). який необхідний для отримання подій віконної системи X Window. Щоб отримувати події, цей метод потрібно просто перезаписати.

Якщо потрібно, щоб подія не піддавалося подальшим обробкам методами подій Qt. то з цього методу потрібно повернути true.

Qt допускає можливість використання в своїх програмах платформозавісімого коду. Це може бути корисно для реалізації програм, що використовують можливості, які не надаються бібліотекою Qt.

QMainWindow - це дуже важливий клас, який реалізує головне вікно, що містить в собі типові віджети, необхідні більшості додатків, такі як меню, секції для панелей інструментів, робочу область, рядка стану. В цьому класі зовнішній вигляд вже підготовлений і його віджети. Далі.
  • Клас QFile успадкований від класу QIODevice. У ньому містяться методи для роботи з файлами: відкриття, закриття, читання і запису даних. Створити об'єкт можна, передавши в конструкторі рядок, що містить ім'я файлу. Можна нічого не передавати в конструкторі, а зробити це після створення об'єкта, викликом методу. Далі.
  • Для реалізації сервера Qt надає зручний клас QTcpServer, який призначений для управління вхідними TCP-з'єднаннями. Програма, показана на малюнку, є реалізацією простого сервера, який приймає і підтверджує отримання запитів клієнтів. Далі.

  • Схожі статті