Help spinbuttons



 

/* I want a window containing many spinbuttons for both
integers and floating-point numbers, these may then be either 1) left
unchanged, or 2) changed to a new value. Then, whether changed or unchanged,
use the integers and floats as input parameters into various calculations. As
it is the printf() statements only show the unchanged values. */

 

/*The example below is taken from page 90 of
"Foundations of GTK+ Development" by Andrew Krause*/

 

#include <stdio.h>

#include <gtk/gtk.h>

 

int main(int argc, char *argv[])

{

GtkWidget *window, *spin_int, *spin_float;

GtkAdjustment *integer, *float_pt;

 

gint number_int;

gdouble number_double;

 

gtk_init (&argc, &argv);

 

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_window_set_title (GTK_WINDOW (window), "Spin Buttons");

gtk_container_set_border_width (GTK_CONTAINER(window), 10);

gtk_widget_set_size_request (window, 150, 100);

 

integer = GTK_ADJUSTMENT (gtk_adjustment_new (5.0, 0.0,
10.0, 1.0, 2.0, 2.0));

float_pt = GTK_ADJUSTMENT (gtk_adjustment_new (0.5, 0.0, 1.0,
0.1, 0.5, 0.5));

 

spin_int = gtk_spin_button_new (integer, 1.0, 0);

spin_float = gtk_spin_button_new (float_pt, 0.1, 1);

 

gtk_container_add (GTK_CONTAINER (window), spin_int);

gtk_container_add (GTK_CONTAINER (window), spin_float);

 

gtk_widget_show_all (window);

 

number_int=gtk_spin_button_get_value_as_int(spin_int);

number_double=gtk_spin_button_get_value(spin_float);

 

  g_signal_connect
(integer, "change-value", G_CALLBACK (spin_int), number_int);

 

  g_print ("Hello
World\n");

  g_print
("g_print Before gtk_main, integer %d\n", number_int);

  printf("printf
Before gtk_main, integer %d\n", number_int);

  printf("printf
Before gtk_main, double %f\n", number_double);

 

gtk_main ();

 

  printf("Hello
World\n");

  printf("After
gtk_main %d\n", number_int);

 

return 0;

}

/********************************************************************************/

/*Below are the commands to edit, compile and execute the
program, and the warnings, messages and output to the terminal. At this stage
the warnings are unimportant, I merely want to be able to read or save both the
unchanged and changed values displayed in the spinbutton(s).*/

/*

 

$ gedit page90.c

 

$ gcc `pkg-config --cflags gtk+-3.0` -o page90.exe page90.c
`pkg-config --libs gtk+-3.0`

 

$ ./page90.exe

 

(page90.exe:2614): Gtk-WARNING **: Attempting to add a
widget with type GtkSpinButton to a GtkWindow, but as a GtkBin subclass a
GtkWindow can only contain one widget at a time; it already contains a widget
of type GtkSpinButton

 

(page90.exe:2614): GLib-GObject-WARNING **:
/build/buildd/glib2.0-2.38.1/./gobject/gsignal.c:2475: signal 'change-value' is
invalid for instance '0xee5350' of type 'GtkAdjustment'

Hello World

g_print Before gtk_main, integer 5

printf Before gtk_main, integer 5

printf Before gtk_main, double 0.500000*/

/*******************************************************************************/

                                          


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]