![]() |
|
|
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Здравсвуйте. Закончив изучение WinAPI решил взяться за QT. Вот пример простой программы для QT, в котором Я хочу провести аналогию структуры программы WinAPI
Теперь скажите правильно ли Я думаю: 1 и 2 - это понятно подключение библиотек. (в WINAPI также #include <windows.h> и т.д) 3 - точка входа в программу (в WINAPI это WinMain) 5 - вот тут мне не понятно зачем это. Проведите пожалуйста аналогию с WinPI 6 - Создаем окно класса Qlabel - текст (в WINAPI это CreateWindow("static","Сам текст")....) 7 - тут мы делаем созданное окно видимым (в WINAPI это ShowWindow(hwnd,SW_...) или в функции CreateWindow(стиль WS_VISIBLE) ) 8 - тут мы вызываем цикл обработки сообщений и возвращаем результат работы программы (в WinAPI это while(GetMessage(.....))(return msg.wParam)). Объясните пожалуйста правильно ли Я все понял и объясните по-подробнее про 5 пункт. P.S: Не знаю правильно ли Я считаю, что провожу такое сравнение, но все же считаю что если программа работает по Windows то по другому она работать не может. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Не правильно. Изнутри - да, конечно, используется ВинАПИ (под виндой). Но это выскоуровневая ОО архтиектура.. Давай аналогию Model/View найдём в ВинАПИ? ;) Ты становишься на ложный путь изучения |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Любитель, Хммм. А Вы могли бы меня на правильный путь напрвить и поясните для чего нужен п.5
Это сообщение отредактировал(а) yngwie19 - 22.5.2009, 14:30 |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 8 Всего: 160 |
yngwie19, наверное, Любитель, как бы говорит нам: не надо даже пытаться проводить аналогии там, где их нет и быть не может. WinAPI - штука специфическая. Qt ведь есть (в том числе) и на Mac OS X. Там другие API (Carbon, Cocoa). Пропасть между WinAPI и Cocoa API настолько огромна, что Qt добавляет дополнительный уровень абстракции. И вряд ли есть смысл искать аналогии Qt API с каким бы то ни было специфическим платформеннозависимым API... -------------------- |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
kemiisto, Ясно, ну ладно спасибо что предупредили, все-таки объясните смысл п.5
|
|||
|
||||
| kuzulis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 5.9.2007 Репутация: нет Всего: 1 |
читать (хотябы) :
"QT4: программирование QUI на С++" , Жасмин Бланшет, Марк Саммерфилд. Глава 1 . Первое знакосмтво. стр. 4 Добавлено через 3 минуты и 17 секунд читать Assistent :
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Если говорить про "аналогию" - то смысла в этом пункте нет. Смысл объекта QApplication - читаем ассистент. Одна из основных - инкапсуляций основного ивент-цкила (QEventLoop). |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Посмотри документацию в ассистенте. ДУмаю станет понятней (по методам класса).
|
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Если кратко отвечать на вопрос что такое в п.5. можно ответить с ехидством - "сейчас просто делай так, сынок, а поймешь - когда вырастешь" . А если подробно - то начните знакомиться с моделью "сигнал-слот" коя является "одной из центральных фич" QT. Там поймете и что такое цикл обработки событий (когда испущенные сигналы поочередно доставляются получателям- слотам которые "прилинкованы" в этим слотам), и, думаю, почему нельзя без QApplication и т.п. И не пытайтесь проводить аналогий с WinApi. по сравнению с QT - WinApi пошлейшее уродство. Это даже не сравнение "зергов и терран". "Зерги" и "терране" - одного уровня системы. QT и WinAPI - системы разного уровня. QT - полноценная ООП-система. WinAPI - функциональный подход, и даже убогий в определенном смысле... Это сообщение отредактировал(а) Denjs - 23.5.2009, 13:53 |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Это emit сигнала - берётся список прилинкованных слотов и вызываются (через метаданные) слоты. QEventLoop нужен для другого. Но, действительно, на первых порах, пожалуй, это не так важно. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Всем спасибо буду разбираться. Подскажите с какой книги лучше всего начать. И еще вопрос, говорят что Qt4 сильно отличается от Qt3, так ли это? И вообще скажите какое будущее у Qt
|
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: нет Всего: 1 |
в том и прелесть QT не нужно море книг чтоб разобраться документация написана достойно и понятно !
но так чтоб немного вникнут Шлее по любой из QT хватит для начал !! а дальше только документация ! будушее QT это уже 4,5 .... бери бесплатно и наслаждайся творчеством =) |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
гм.. а давайте пооффтопим? дабы восполнить мои пробелы в знаниях... А для пересылки событий сежду процессами разве не нужен Event Loop? (не класс QEventLoop, а имеено "an event loop") Технически, как я понимаю, в момент "app.exec();" запускается "цикл событий"(event loop) и в частности - начинают "доставляться" сигналы по соединениям созданным с типом "Qt::QueuedConnection" и/или сигналы направленные в объекты в других потоках. Я так однажды инициировал объект - я "с дуру" написал его инициацию так, что мне зачам-то нужен был работающий цикл событий (деталей уже не могу вспомнить) и думал как мне его инициировать, потому что без него я вообще ничего не мог сделать в программе. В результате я создал класс пустышку StartEventSenter, далее в main() - создал его экземпляр, приконнектил его к нужному мне объекту с типом соединения "Qt::QueuedConnection" и "емитировал"(emit) сигнал. Соответсвенно, до момента "app.exec()" ничто никуда не доставлялось. или я где-то запутался с своих моделях? Это сообщение отредактировал(а) Denjs - 24.5.2009, 17:03 |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
начинать? читать Assistant) ну или читать Шлее или второе переиздание Бланшет. "НичоБольшеНет". Но помните - указанные книги - при всем своем объеме около 800+ страниц - это примерно 10-15% от данных что есть в родной справочной системе "assistant". Но и то и другое - это больше справочники, а не учебники. Зубрить - не вызубрите, имхо. и да, QT4 отличается от QT3. не кардинально, но сильно. Учите QT4. Последняя версия QT 4.5. Это сообщение отредактировал(а) Denjs - 24.5.2009, 17:22 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |