2011-12-29 32 views
0

可能重複:
Linux GUI programming你如何在Linux中編程?

更具體的Ubuntu 11.10在C++中。我真正想學習的是製作一個基於GUI的應用程序和類似的東西。

我知道windows,你會使用win32 API,有沒有像/包含在Linux的東西?

請原諒我的愚蠢(如果有必要),我只是剛開始使用Linux。

+1

先試試看KDE和GNOME項目吧! – B4NZ41 2011-12-29 02:15:43

+1

歡迎來到SO。本網站收集了大量已被問及的問題,尤其是基本主題。我已投票結束您的問題,因爲它已經被問及回答。 – thiton 2011-12-29 02:19:21

回答

1

在Linux下使用GTK+相當常見。我在一段時間內沒有在Linux下進行任何GUI編程,所以我不知道是否有更新和/或更好的東西。

2

有兩種主流的GUI框架很受歡迎:GTKQt。通常情況下,在GNOME臺式機上,GTK程序更感覺「在家」,而在KDE臺式機上,Qt程序更感覺「在家」。爲另一個編寫的程序可以自由運行,而不使用「桌面」的用戶(如我)可以在沒有(很多)問題的情況下從任一框架運行程序。 Xfce是另一種流行的框架,雖然沒有像GTK或Qt那樣廣泛分佈。

有些人更喜歡在wxWidgets中編程GTK,這不僅僅是因爲他們的代碼也可以在Windows和OS X下以本機外觀運行。

+0

好的,謝謝。我也會看看GTK,因爲我在Ubuntu分區上安裝了GNOME 3。 – ILikePizza555 2011-12-29 02:23:37

4

請不要以爲你是愚蠢的。當我開始編程時,我甚至無法讓圖形與我的圖形卡一起工作,並且被迫在控制檯中寫了一些簡單的東西,直到我從更有經驗的人那裏獲得一些幫助。現在有兩種編寫GUI應用程序的基本方法 - 在Windows上它是Win32 API,正如你所提到的那樣,在Linux(以及各種類Unix系統)上,它是X11 API。另外還有一個Mac OS X,它提供了一個名爲Carbon的C API(現在它已被棄用)和Objective-C API(名爲Cocoa),用於爲OS X和iOS(iPhone,iPad)創建GUI。

但是,X11和Win32是非常低層次,難以使用和不可移植的。這意味着你必須付出很大努力爲一個平臺編寫一個程序,然後它不會在另一個平臺上工作,因此你必須維護多個代碼才能在另一個平臺上運行。

幸運的是,有些GUI API隱藏了所有的差異,並且與平臺無關。這意味着您可以編寫可在Windows,Linux和其他平臺上工作的單一代碼。

兩個在這方面旗手框架是:

  • Qt - 一個跨平臺的C++(用JavaScript混合)工具包。
  • GTK - 一個C/C++庫。

還有很多,但這兩個是最流行的,並有一個很好的理由。我建議你從學習其中之一開始。我個人的偏好是Qt。同一家公司還有一款名爲Qt Creator的便攜式C++ IDE。這是目前最好的之一,並且與Qt非常緊密地結合在一起。強烈建議(即使我自己使用emacs - Unix本身就是一個IDE)。另外,如果你不使用C或C++,則有Mono - 一個C#框架,其GUI可以在Linux,Unix和其他平臺上工作。我沒有任何經驗。當我上次查看時,發現許多許可問題,整個事情看起來很古怪,不值得探索。

希望它有幫助!