Имя пользователя:
Пароль:
 

Показать сообщение отдельно
pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Почему вы боитесь слова "callback"?
Цитата:
С точки зрения использующего QT программиста на С++ никаких callback'ов не существует
WTF emit()?
1. Вы пишете метод, который называете "слотом" void reflectSomeway();
2. Подсоединяете его к "сигналу" connect(SIGNAL(doingSomething()), SLOT(reflectSomeway()))
3. При вызове хозяина слота функции emit(SIGNAL(doingSomething())) вызывается (и в том числе) ваша reflectSomeway().
4. Другим способом reflectSomeway() не вызывается.
Разве это не callback? Мне кажется, что фразу "no more callbacks" из хелпа следует воспринимать как "no more type-unsafe callbacks".
Цитата:
Доморощенный программист, что возмёшь...
я такой же...
Цитата:
в уже "разобранном виде"
что имеется в виду?
Код: Выделить весь код
TControl {
...
virtual void event(QEvent*);
virtual void onCommand(int);
virtual void onSize(int,int);
};


...
switch (message) {
       ...
       case WM_COMMAND :
                onCommand(event->wparam & 0xffff);
                break;
        case WM_SIZE :
                onSize(event->lparam & 0xffff, event->lparam >> 16);
                break;
    }
Цитата:
на фиг не нужны тонкости winApi
На то QT и intercompiler & interplatform GUI library
А насчёт установки фильтров на сообщения я подумаю... Хотя, грубо говоря так в винде и делается:
1. Снимается сообщение
2. Диалог отсеивает tab, shift+tab, стрелки, F6 и др. (IsDialogMessage)
3. Диалог отсеивает аккселераторы (TranslateAccelerator)
4. Диалог переводит нажатия клавиш в ввод символов (TranslateMessage)
5. Окна обрабатывают сообщения, если они ещё не обработаны (DispatchMessage)
т.е. можно сказать, что дочерние окна "врезаются" в очередь событий родительского окна.

Единственная трудность - Микрософт пишет программы, удобные для сервера, а не клиента. Вместо того, чтобы спрашивать у родителя, как дочернему окну оповещать о событии, родительские окна должны приспосабливаться к капризам дочерних. Все гуишные библиотеки первым делом пытаются исправить эту ситуацию. Вот я и думаю как бы это сделать как можно лучше.

Отправлено: 11:28, 11-04-2005 | #6