2014-03-31 82 views

回答

0

您不能直接顯示整數值。您必須先格式化字符緩衝區的整數值,並將其設置爲文本

GtkTextBuffer *textbuf; 
char cbuf[15]; 
int n, v; 
v = 738; 
n = sprintf(cbuf, "%d", v); 
gtk_text_buffer_set_text(textbuf, cbuf, n); 
+0

非常感謝你這是有用的一塊信息。 :) – user3318922

1

當用C做I/O,您通常使用的字符串。由於這是一種I/O形式,因此需要先將數字格式化爲字符串。

這樣做也很好,因爲將數字格式化爲字符串可以通過多種方式完成(不同的基數,數字位數,填充等等),因此將其保留在應用程序端意味着GTK +小部件不必知道所有的東西。

glib string utility functions API有一堆處理字符串的函數。這裏最相關的可能是g_snprintf()

void number_to_buffer(GtkTextBuffer *textbuf, int number) 
{ 
    char buf[32]; 

    const gint len = g_snprintf(buf, sizeof buf, "%d", number); 
    gtk_text_buffer_set_text(textbuf, buf, len); 
}