|
Sigslot е една од имплементациите на сигнал/слот со помош на template-и (зборот влошка/шема не ми се свиѓа). За разлика од QT каде користи специјален препроцесор за да генерира код (користи нестандарден C++, но препроцесорот генерира стандарден код), овде имплементацијата е со templatе-и.
|
|
Прочитај повеќе...
|
|
|
Како што пишував минатиот пат ќе објаснам како се остваруваат сигнали/слотови во QT библиотеката. Како пример ќе го земам претходниот пример, кога за притискањето на копчето (Button) се извршува акцијата reload (повторно вчитување) на моменталната страница.
|
|
Прочитај повеќе...
|
|
|
Што се сигнали и слотови? Сигнал е настан или нотификација дека некаков настан се случил. Слот е потенцијален примател, типично во форма на функција која треба да се повика. Сигналите и слотовите можат да се поврзуваат меѓу себе. Нешто емитира сигнал кога некаков настан се случува или пак има промена на состојбата. Емитерот мора да ги повика сите функции (слотови) кои се регистрирани (конектирани) на овој настан (сигнал).
|
|
Прочитај повеќе...
|
|
|
Пак спор апдејт. Има некој работи кои не можеш да ги контролираш.
Бидејќи не бев задоволен со Window класата што ја користам во DirectX 10 примерите, особено делот со callbacks (callback кога има промена на величината/resize на прозорот и callback кога е притиснат некој тастер). Изгледа многу C, иако е сосема добар кодот, но при постоење на виртуелни методи, сепак има подобро (во смисла почитливо и појасно) решение.
Решението е класично, класичен пример на објектно ориентирано програмирање. Место callback се користи виртуелен метод, кој треба да се преоптовари во наследената класа. Преоптоварениот метод се повикува во наследената класа секојпат кога има промена на величината на прозорот, притиснат тастер, или притиснат лев клик на глушецот. Значи, ако се сака да имате нотификацијата, на пример, кога има resize, се преоптоварува (override) виртуелниот метод OnResize.
Еве ја класата:
wndclass.h
wndclass.cpp
|
|
|
Ќе објаснам малку за copy constructor, кога се запознав со C++ ми беше малку нејасен концептот на копирање на објекти но со тек на време, се си дојде на место. Copy constructor е специјален конструктор кој се користи при креирање на нов објект како копија на веќе постоечки објект. Звучи малку сложено, но работите се поедноставни, зошто ако не е дефиниран copy constructor-от, тогаш самиот компајлер дефинира имплицитен copy constructor. Имплицитниот copy constructor го копира објектот член по член, ако тоа не го сакаме тогаш можеме да си дефинираме сопствен експлицитен copy constructor. Има едно правило, ако веќе дефинираме copy constructor тогаш најверојатно ќе дефинираме и операторот доделување, и деструктор.
|
|
Прочитај повеќе...
|
|
|
|
<< Почеток < Претходна 1 2 3 Следна > Крај >>
|
| Резултати 1 - 9 од 23 |