GtkScale
GtkScale —— A slider widget for selecting a value from a range
用于从范围中选择值的滑块小部件,如下图,分为水平和垂直方向。
这一篇将学习一下相关函数:
GtkWidget *
gtk_scale_new (GtkOrientation orientation, GtkAdjustment *adjustment);
void
gtk_scale_set_draw_value (GtkScale *scale, gboolean draw_value);
void
gtk_scale_set_digits (GtkScale *scale, gint digits);
void
gtk_scale_set_value_pos (GtkScale *scale, GtkPositionType pos);
例子
#include <gtk/gtk.h>
static void load_css(void);
static GtkWidget *create_window(const gint, const gint);
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window;
GtkAdjustment *adjustment;
GtkWidget *scale;
/// *** Create a Window
window = create_window(400, 300);
/// *** Create the adjustment
adjustment = gtk_adjustment_new(0.0, 0.0, 10.0, 1.0, 2.0, 0.0);
/// *** Create the scale
scale = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, adjustment); // 水平方向
// scale = gtk_scale_new(GTK_ORIENTATION_VERTICAL, adjustment); // 垂直方向
/// *** 是否显示当前值的标签(字符串)
gtk_scale_set_draw_value(GTK_SCALE(scale), TRUE);
/// *** 设置当前值的标签的显示位置 TOP BOTTOM LEFT RIGHT
gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_LEFT);
/// *** 设置标签值的小数位数
gtk_scale_set_digits(GTK_SCALE(scale), 3);
gtk_container_add(GTK_CONTAINER(window), scale);
gtk_widget_show_all(window);
gtk_main();
}
static GtkWidget *create_window(const gint w, const gint h)
{
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_default_size(GTK_WINDOW(window), w, h);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "Hello GTK3");
gtk_container_set_border_width(GTK_CONTAINER(window), 50);
return window;
}
- 运行效果:
注释中说的标签(字符串)便是上图中的
2.014
。