Каковы основные понятия в Nokia Qt? - PullRequest
0 голосов
/ 28 января 2011

Каковы основные понятия в Nokia Qt?

Что я хочу знать перед входом в Nokia Qt framework?

Может ли кто-нибудь мне помочь?

Я очень новичок в Nokia Qt. Заранее спасибо.

Ответы [ 2 ]

13 голосов
/ 28 января 2011

Qt - это огромный фреймворк с библиотеками для работы с графическим интерфейсом, сетью, базой данных и всевозможными вещами. Это очень хорошо задокументировано, поэтому посмотрите на Как изучать Qt на сайте Nokia. При этом, вот некоторые из основных понятий:

  1. Qt - это фреймворк. Это означает, что вы организуете свой код вокруг реагирования на события. Самое главное, у вас нет «основного цикла». Ваш main обычно выглядит так:

    QApplication app(argc, argv);
    MyMainWindow win;
    
    win.show();
    
    return app.exec();
    
  2. Сигналы и слоты. 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 имеет некоторые из самых обширных документов. Удачи!

4 голосов
/ 28 января 2011

Пока вы понимаете объектно-ориентированное программирование, вы будете в значительной степени знать достаточно, чтобы начать.Основным дополнением к объектам C ++ из Qt являются Сигналы и Слоты.если вы прочитаете документацию, они быстро начнут понимать.

...