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

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

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

Кто-нибудь может мне помочь?

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

2 ответа

Решение

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 есть некоторые из самых обширных документов. Удачи!

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

Другие вопросы по тегам