2011-08-10 34 views
0

我想使用use-markup,但它似乎不起作用。沒有它,一切正常。GtkLabel分段錯誤

label_markup = g_object_new(GTK_TYPE_LABEL, "wrap", TRUE, "use-markup", TRUE, "label", "<span font_desc=\"Courier New Bold 16\">Courier-span>"); 

這可能是由安裝了錯誤的開發包引起的?我正在做2.0教程,但不小心安裝了libgtk3.0-dev,然後更新了我的存儲庫。現在它已被刪除?


編輯爲別人閱讀本:的例子是從書「官方GNOME 2開發人員指南」,可以114-115頁上找到 - 我只是縮短了。問題是編譯器沒有抱怨,你只是不知道爲什麼就不能運行程序。

回答

2

您在您的g_object_new()通話結束需要一個NULL。沒有它,就無法知道你傳遞了多少個參數,這會導致分段錯誤。

+0

就是這樣!我試了一下,它完美地工作。你是我的英雄。非常感謝你。這個錯誤實際上是在本書的源代碼中,它是一個意思,因爲編譯器根本沒有抱怨.. –

+0

這本書相當古老。我建議使用新書來學習Gnome編程 - 例如,在developer.gnome.org上的10分鐘教程。 – ptomato

+0

而且,它實際上是一個編譯器沒有抱怨的錯誤 - 應該用'G_GNUC_NULL_TERMINATED'屬性聲明'g_object_new()'。它不是,我看:[gobject.h](http://git.gnome.org/browse/glib/tree/gobject/gobject.h)你想報告在bugzilla.gnome.org? – ptomato