2010-01-21 51 views
1

請原諒我的無知,但我不知道C++和GTK +。C++,GTK +和字符串類型

在GTK +小部件中設置字符串時使用哪種字符串類型?

在.NET中,傳遞給控件的字符串顯然是.NET System.String。在Cocoa中,傳遞給控件的字符串是NSString。但我知道C++沒有標準化的字符串類型(但實際上有幾個,取決於所使用的庫)。

那麼如何將字符串傳遞給GTK +小部件?

(我想C字符串,但我想知道。)

+0

順便說一句,你可能想查看一個名爲'std :: string'的類的* STL *(** Standard ** Template Library)。我相信這被認爲是「標準化的C++字符串類型」。正如你所發現的那樣,沒有* universal *字符串庫。 –

+1

嘗試Vala:[http://live.gnome.org/Vala]它是GTK +的新語言,它生成本機代碼並且其設計比C++(IMHO)更好。 – lepe

回答

6

在GTK +的所有文字UTF-8編碼,使用char *,當然const在可能的情況。請記住,GTK +是用C語言實現的,因此沒有使用STL。

底層巧舌如簧的character-set conversion documentation開始就指出:

油嘴使用UTF-8的字符串, GUI工具包一樣GTK +使用油嘴 做同樣的事情。

+0

我假設這是真的,它幾乎是我的預期。助教。 –

2

請注意,如果您在C++中使用GTK +,即使它可以使用原生的C接口,你絕對應該使用Gtkmm,本地C++而不是結合。這是一個更好的界面,因爲您不必混淆任何GObject代碼。