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

问题描述 投票:0回答:1

我拼命尝试将浮点值打印到条目小部件。 原则上我想在入口小部件处给出由比例小部件设置的值。 我将此功能打包到一个回调函数中,当缩放小部件的值发生更改时会调用该函数。

    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 函数所需的 char 指针时会发生错误,但我不知道该怎么做。 欢迎任何建议(:

已解决: 感谢“一些程序员花花公子”对 snprintf 的提示,它只需将缓冲区传递给 gtk_entry_set_text() 即可工作;

c pointers callback gtk type-conversion
1个回答
0
投票

使用

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

g_strdup_printf
准确分配存储信息所需的内存。只需使用结果并随后使用
g_free
释放它即可。

© www.soinside.com 2019 - 2024. All rights reserved.