2012-12-27 218 views
1

我在使用xcode的mac上,我已經在C和C++中編程了一段時間,但是,我不知道如何通過簡單的文本輸入/輸出程序,我一直在寫。我理解這些原則,但通過基礎知識證明很難弄明白。在Mac上使用C或C++進行GUI編程入門

我聽說像ct或gtk + for C++這樣的庫是最好的選擇,但大多數書籍和教程都專注於Windows或Linux的編程,而沒有一個顯示這些庫如何工作。我想真正理解幕後發生的事情;我想了解圖形用戶界面如何在儘可能最低的層次上工作,即使在裝配和機器代碼級別。有誰知道從哪裏開始呢?謝謝。

+2

你是說你想使C/C++應用程序的Mac嗎?或其他平臺?如果僅用於Mac,那麼學習Objective-C確實會有所幫助。它的確與C不同。最難的部分是學習所有的API,但Apple有非常好的文檔。 – Josiah

+0

我想我現在可能會這樣做,但是如果我最終想爲其他操作系統編程,您會提出什麼建議? –

+0

另外,我仍然想在較低的層面上理解它。 –

回答

1

如果您使用OpenGL,您可以非常低級地瞭解圖形硬件如何生成各種UI元素。當然,你必須自己完成所有這些工作。從設計各種UI項目到創建像素緩衝區和紋理映射以及使用幀緩衝區。這部分也是跨平臺的。

您還可以自己處理用戶交互和接口邏輯(輪詢鼠標/鍵盤等)。您可能需要一段時間來編寫更復雜的小部件,但至少您可以自己完成這一切,這將使您對GUI工具包的工作方式有相當的瞭解。

GLUT自帶大多數Mac,併爲您提供最基本的要素讓你上手(你至少可以得到一個窗口:))

https://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html

過剩庫支持以下功能:

  1. 用於OpenGL渲染的多個窗口。
  2. 回調驅動的事件處理。
  3. 「空閒」例程和定時器。
  4. 生成各種實體和線框對象的實用程序例程。
  5. 支持位圖和筆畫字體。
  6. 其他窗口管理功能。

http://www.opengl.org/resources/libraries/glut/glut_downloads.php

+0

很好的答案,OpenGL上有沒有好的書籍或教程? –

+0

我更新了我的答案一點。以下是一些資源: 1. [Xcode GLUT教程](http://cit.cs.dixie.edu/cs/3600/xcode-glut/index.html) 2. [GLUT基礎知識](http: //www.gamedev.net/page/resources/_/technical/opengl/basics-of-glut-r1680) 3. [GLUT Drawing](http:// davidwparker。COM/2011/08/20/OpenGL的截屏-6-拉入-3D-部分-1-過剩的對象/) 注意,可可爲GLUT實際上是可選的,可以在普通的C或C++創建的GUI。 – omygaudio

+0

非常感謝,這真的很有幫助。 –