在gtk + 3中向GtkTextBuffer添加数字

时间:2014-03-31 09:06:43

标签: c gtk3 gtktextview

如何在gtk + 3中为TextBuffer添加一些类型gint? gtk_text_buffer_set_text的参数类型为gchar,但我想设置gint类型的整数

2 个答案:

答案 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);