Gtk +:将一个浮点值打印到条目小部件

时间:2017-03-07 15:32:43

标签: c pointers callback gtk type-conversion

我正在努力将浮点值打印到条目小部件。 原则上,我想在条目小部件中给出由小部件小部件设置的值。 我将此功能打包到一个回调函数中,该函数在更改缩放小部件的值时调用。

    static void scale_callback(GtkWidget *widget, para* para)
    {
        char text;

        para->value=gtk_range_get_value(GTK_RANGE(widget));
        text=para->value;
        printf("%c\n",text);
        gtk_entry_set_text(GTK_ENTRY(para->entry),&text);
    }

para是一个结构,它包含指向条目小部件,缩放小部件和由小部件小部件设置的值(浮点数)的指针。

    struct para
     {
        GtkWidget *scale;
        GtkWidget *entry;
        float value;
     };

我现在的问题是只打印一些随机的标志(e @ A)而不是正确的值。我很确定在将float值转换为gtk_entry_set_text-function所需的char指针时会发生错误,但我不知道该怎么做。 欢迎任何建议(:

解决: 感谢"一些程序员老兄"通过将缓冲区传递给gtk_entry_set_text();

提示snprintf它的工作原理

1 个答案:

答案 0 :(得分:0)

使用g_strdup_printf代替snprintf。使用snprintf,您需要知道结果字符串的大小,或者需要使用过大的缓冲区,以确保您拥有所有输入,或者截断文本。

g_strdup_printf准确分配存储信息所需的内存。只需使用结果,然后将其与g_free一起释放。