2011-01-28 103 views
0

諾基亞Qt中的基本概念是什麼?諾基亞Qt中的基本概念是什麼?

在進入諾基亞Qt框架之前我想知道些什麼?

任何人都可以幫助我嗎?

我是諾基亞Qt的新手。 在此先感謝。

+2

這是一個非常廣泛的問題。首先閱讀[精彩的Qt文檔的介紹部分](http://doc.qt.nokia.com/latest/gettingstartedqt.html),然後如果您仍然不清楚哪些內容可以提出更具體的問題。 – 2011-01-28 08:12:03

回答

13

Qt是一個巨大的框架,具有用於處理GUI,網絡,數據庫和各種事物的庫。這是非常有據可查的,所以去諾基亞的網站上看看How to Learn Qt。話雖這麼說,這裏有一些基本概念:

  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

只要你瞭解面向對象編程,你就可以開始瞭解足夠的知識。 Qt中主要的C++對象是信號和插槽。如果你閱讀文檔,他們會很快開始理解。