簡體   English   中英

包裝GTK +功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM