2013-03-25 263 views
1

在某些桌面客戶端應用程序中使用gtkmm gui工具包是一個好主意嗎?gtkmm桌面應用程序

這個工具包是否穩定,是否有足夠的文檔在線?

+2

是的,這是一個官方支持的綁定(http://www.gtk.org/language-bindings.php)。 「inkscape」和「ardor」是用gtkmm 和Glade(也就是PyGTK)編寫的着名應用程序,您可以快速構建原型應用程序。 – pce 2013-03-25 16:41:55

回答

1

我兩個月前開始使用gtkmm。我實際上移植了一個tcl/tk應用程序,並且我感覺很難讓這些東西運行。我發現的唯一有用的文檔是https://developer.gnome.org/gtkmm-tutorial/3.4/

但手冊中描述的許多事情都不起作用!我實際上遇到了麻煩,同時壓倒應該工作但沒有工作的信號處理程序。也許你會看看[email protected]找出你可能會遇到什麼樣的問題:-)

從doxygen輸入派生的文檔似乎對我無用,因爲函數主要是沒有描述和參數名稱,或者往往不是很清楚。

與tcl/tk相比,界面看起來不一致。有時參數必須由文本提供,有時由指針提供,有時由原生值本身提供。尤其是菜單對於基於字符串的配置非常「神祕」。將參數作爲文本的需求非常不方便!您必須將參數與ostrstream轉換爲文本,並有時將參數從文本解析爲實際值。

我決定給gtk +一個機會就是存在C++接口。我認爲這會有助於在編譯時獲得錯誤,而不是像使用tcl/tk一樣運行應用程序。但這並不總是與gtkmm一樣。使用gtkmm,您還可以運行時運行時錯誤,因爲所有字符串參數都將在運行時解析!這使得事情容易出錯!

也許我會重新開始給Qt一個機會。但第一個看法表明,這似乎不是更好:-)

寫一個GUI應用程序仍然是一個非常討厭的工作!

+0

你是否建議使用gtk +替代gtkmm? – Yoh0xFF 2013-04-01 20:08:27

+0

Gtk +本身是面向對象的c代碼,gtkmm只是c庫的一個包裝。我認爲真的沒有理由使用gtk + direct。從c編碼類派生看起來很醜,在c中編寫好的面向對象代碼比在C++中困難得多。所以*我的建議是使用gtkmm。但有時候在c接口中查看包裝代碼的含義是有幫助的。 – Klaus 2013-04-01 20:24:36

+0

感謝您的回答。 – Yoh0xFF 2013-04-01 20:42:52

1

gtkmm是官方支持的GTK綁定(gtk.org/language-bindings.php)。

「Inkscape中」和「熱情」是寫在gtkmm的

是官方的GNOME綁定綁定遵循這保證了API的穩定性和基於時間的釋放GNOME發佈日程顯着的應用程序。

如果你想在C中編寫你的應用程序,請使用GTK +(和GLib)。

您可以在http://www.gtkmm.org/https://developer.gnome.org/gtkmm-tutorial/)找到相關文檔的鏈接。

隨着Glade(和即PyGTK),你可以快速原型的應用程序。 使用Glade構建GUI非常簡單,生成的UI是一個xml文件,不受編程語言的約束。

2

我用gtkmm編寫專業應用程序,是的,你可以用它來進行真實世界的軟件開發。但我也使用過C/GTK +和C++/Qt,我的觀點是使用Gtkmm你有這樣的感覺,即原始工具包是用於C語言的,並且移植到C++是可以的,但在很多情況下,你覺得C++功能可以被更好地使用。

對於比較:

如果你有GTK和gtkmm的之間做出選擇去gtkmm的,即使你可能會發現自己被困在一些無據可查或支持功能。最終你總是設法找到一個解決方案(你可以檢查源代碼),而C++比c更好。

如果您必須在Gtkmm和Qt之間進行選擇,請參閱Qt。兩者之間有巨大的差距。不僅在工具包本身中,而且在編寫應用程序時需要的文檔和所有其他類中。