Каковы основные понятия в Nokia Qt?
Каковы основные понятия в Nokia Qt?
Что я хочу знать перед входом в среду Nokia Qt?
Кто-нибудь может мне помочь?
Я очень новичок для Nokia Qt. Заранее спасибо.
2 ответа
Qt - это огромная платформа с библиотеками для работы с графическим интерфейсом, сетью, базой данных и всевозможными вещами. Это очень хорошо задокументировано, так что посмотрите на Как узнать Qt на сайте Nokia. При этом, вот некоторые из основных понятий:
Qt - это фреймворк. Это означает, что вы организуете свой код вокруг реагирования на события. Самое главное, у вас нет "основного цикла". Ваш
main
в общем выглядит так:QApplication app(argc, argv); MyMainWindow win; win.show(); return app.exec();
Сигналы и слоты. Qt использует понятия сигналов и слотов для радикального разделения различных частей программы. Сначала вы должны подключить сигнал к слоту:
connect(sender, SIGNAL(theSignal(int)), receiver, SLOT(theSlot(int)));
Затем, когда-либо
sender
"испускает" сигнал (используя, например,emit theSignal(0)
), тогда Qt организуетreceiver->theSlot(0)
быть названным. Эта договоренность достигается "мета-объектным компилятором", отдельной программой, которая генерирует код, который вы компилируете и связываете с вашей программой.Qt использует сигналы и слоты для ответа на события GUI. Поэтому, когда вы решаете, что делать вашей программе, когда пользователь нажимает на пункт меню "Файл-> Открыть", вы пишете слот. Qt использует мета-объектный компилятор (
moc
) для предварительной обработки вашего кода и генерации большого количества машин за сценой, чтобы убедиться, что этот слот может быть подключен к сигналам. В шапке дляMyMainWindow
, у вас будет что-то вроде:class MyMainWindow : public QMainWindow { Q_OBJECT public: MyMainWindow(); public slots: void on_fileOpen_activated(); signals: void mySignal(int n); };
Q_OBJECT
макрос необходим дляmoc
узнать класс и сгенерировать всю технику для вас. Что касается вашего кода, слот - это обычный метод. Он может быть публичным, защищенным или частным. Это можно назвать нормально. Разница лишь в том, что вы можете использоватьconnect
подключить к нему сигнал.Сигналы это другое дело.
moc
реализует все ваши сигналы для вас, поэтому, продолжая приведенный выше пример,MyMainWindow.cpp
не будет включать определениеmySignal
,
Qt - это очень большая структура, и вы можете легко использовать только те части, которые вам нужны. По-медленнее. Не беспокойтесь о расширенных функциях или вещах, которые кажутся слишком сложными. Выясните, что вы хотите сделать, а затем попробуйте сделать это. Поиск в Интернете. У Qt есть некоторые из самых обширных документов. Удачи!
Пока вы понимаете объектно-ориентированное программирование, вы будете знать достаточно, чтобы начать. Основным дополнением к объектам C++ из Qt являются Сигналы и Слоты. если вы прочитаете документацию, они быстро начнут понимать.