gpt4 book ai didi

GTK 获取 slider 值

转载 作者:行者123 更新时间:2023-12-02 21:33:47 24 4
gpt4 key购买 nike

如何在 GTK 中获取 slider 值?

#include <gtk/gtk.h>
#include <stdio.h>
#include <string.h>

GtkWidget *speed_sld,*speed_label;

static void transmit (GtkWidget *widget,gint *data)
{
float val = gtk_scale_get_digits(data);
g_print("Val is %f \n",val);
}

int main (int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;


gtk_init (&argc, &argv);

builder = gtk_builder_new ();
gtk_builder_add_from_file (builder, "./ECU.glade", NULL);

window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
//g_signal_connect (window, "destroy", G_CALLBACK (on_window_destroy), NULL);

speed_sld = GTK_WIDGET (gtk_builder_get_object (builder, "scale1"));
speed_label = GTK_WIDGET (gtk_builder_get_object (builder, "label1"));

g_signal_connect (speed_sld, "value-changed", G_CALLBACK (transmit), NULL);

gtk_widget_show_all (window);
gtk_main ();
}

如何在传输函数中打印 slider 值?我尝试打印数据,*数据等如何获取函数内的值

最佳答案

data 是指向 g_signal_connect 中提供的任何数据的指针(您提供了 NULL),因此这是没有意义的。

我猜您在查看 GtkScale 文档时感到困惑:记住您还需要查看父小部件 API,在本例中 GtkRange 。这应该有效:

static void transmit (GtkRange *range, gpointer data)
{
g_print ("current value is %f\n", gtk_range_get_value (range));
}

关于GTK 获取 slider 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21851953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com