我们如何在 gtk+3 中向 TextBuffer 添加多个类型的 gint?gtk_text_buffer_set_text 具有 gchar 类型的参数,但我想设置 gint 类型的整数
问问题
218 次
2 回答
1
在 C 中进行 I/O 时,通常使用字符串。由于这是 I/O 的一种形式,因此您需要先将数字格式化为字符串。
这也很好,因为可以通过多种方式将数字格式化为字符串(不同的基数、位数、填充等),因此将其保留在应用程序端意味着 GTK+ 小部件不必知道所有这些东西.
glib 字符串实用函数 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);
}
于 2014-03-31T09:29:15.830 回答
0
您不能直接显示整数值。您必须首先在字符缓冲区中格式化整数值并将其设置为文本
GtkTextBuffer *textbuf;
char cbuf[15];
int n, v;
v = 738;
n = sprintf(cbuf, "%d", v);
gtk_text_buffer_set_text(textbuf, cbuf, n);
于 2014-03-31T09:18:57.853 回答