回答
Qt是一個巨大的框架,具有用於處理GUI,網絡,數據庫和各種事物的庫。這是非常有據可查的,所以去諾基亞的網站上看看How to Learn Qt。話雖這麼說,這裏有一些基本概念:
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擁有一些最廣泛的文檔。祝你好運!
只要你瞭解面向對象編程,你就可以開始瞭解足夠的知識。 Qt中主要的C++對象是信號和插槽。如果你閱讀文檔,他們會很快開始理解。
- 1. 諾基亞QT SDK線程概念
- 2. ANTLR基本概念
- 3. JCR基本概念
- 4. 使用諾基亞的Qt在S60(諾基亞E72)
- 5. 諾基亞Qt安裝
- 6. 諾基亞qt sdk問題
- 7. 諾基亞Qt SDK和Qt SDK有什麼區別?
- 8. 基本的CSS概念
- 9. 諾基亞Qt中的樣式表
- 10. 諾基亞Qt SDK和Qt Mobility API
- 11. QT移動 - 諾基亞QT SDK
- 12. WaitHandle背後的基本概念是什麼?
- 13. rails'act_as背後的基本概念是什麼?
- 14. 命令行參數語法的基本概念是什麼
- 15. 核心Java基本概念
- 16. C基本編程概念
- 17. 基本ember.js模板概念
- 18. Archlinux上的諾基亞QT SDK
- 19. 堆棧的基本概念和中斷
- 20. 諾基亞5310
- 21. 什麼是概念?
- 22. 諾基亞Lumia Windows版本
- 23. Qt鏈接到Ovi(諾基亞)店鋪
- 24. Qt :: WA_DeleteOnClose在osx上 - 諾基亞教程
- 25. 諾基亞Qt ::編輯圖像
- 26. 諾基亞N73中可編程的接口是什麼?
- 27. 什麼是環境變量的基礎概念?
- 28. 諾基亞N8中的HTML5
- 29. 什麼是.NET Framework中的語言互操作性(基本概念)?
- 30. 直播視頻的基本概念
這是一個非常廣泛的問題。首先閱讀[精彩的Qt文檔的介紹部分](http://doc.qt.nokia.com/latest/gettingstartedqt.html),然後如果您仍然不清楚哪些內容可以提出更具體的問題。 – 2011-01-28 08:12:03