[英]Wrapping GTK+ functions
程序編寫為C,GUI由GTK +創建。 算法沒有問題或什么,我只是不確定一件事。
我打算包裝一些GTK函數,所以我可以保存很多源代碼行。 例如:
GtkWidget *gtkwrap_label_markup_new(const gchar *txt)
{
GtkWidget *label;
g_assert(txt);
label = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(label), txt);
return label;
}
我使用pango很多次修改的文本,這個包裝函數保存了很多行代碼。 也許它還不錯,但如果其他一些程序員有一天會閱讀我的代碼怎么辦,會有什么反應呢? “.... gtkwrap_label_markup_new?什么?!”
我只想知道,如果包含這些功能在標准范圍內。 我不想看起來像個白痴,我也不想學習一些壞習慣。 ;)
引入函數以避免代碼重復沒有任何問題。 事實上,我認為這恰恰相反,引入抽象可以幫助您更快地開發代碼,並降低修復問題或更改設計的成本。
如果您有疑問,請查看GTK代碼。 例如,對於gtk_label_set_markup ,您會看到處理str變量為NULL的情況。 因此,斷言檢查可能適合您的應用程序,但我認為這有點矯枉過正。 如果您想要警告,您可能更喜歡g_return_val_if_fail(str != NULL, NULL)
返回NULL並在txt
為NULL時打印警告。
但是如果你真的想要保存一堆代碼,可以使用Glade來設計你的UI,而不是在簡單的C中構建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.