如何在gtk + 3中为TextBuffer添加一些类型gint? gtk_text_buffer_set_text的参数类型为gchar,但我想设置gint类型的整数
答案 0 :(得分: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);
}
答案 1 :(得分:0)
您无法直接显示整数值。您必须首先在字符缓冲区中格式化整数值,并将其设置为文本
GtkTextBuffer *textbuf;
char cbuf[15];
int n, v;
v = 738;
n = sprintf(cbuf, "%d", v);
gtk_text_buffer_set_text(textbuf, cbuf, n);