学习以下函数(属于GtkRange)
void
gtk_range_set_inverted (GtkRange *range,
gboolean setting);
void
gtk_range_set_value (GtkRange *range,
gdouble value);
void
gtk_range_set_increments (GtkRange *range,
gdouble step,
gdouble page);
void
gtk_range_set_range (GtkRange *range,
gdouble min,
gdouble max);
例子
#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;
GtkWidget *scale;
/// *** Create a Window
window = create_window(400, 300);
/// *** Create the scale
/// *** 创建一个水平方向、min:0.0、max:10.0、step:1.0的scale
scale = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0.0, 10.0, 1.0);
/// *** 倒置value
gtk_range_set_inverted(GTK_RANGE(scale), TRUE);
/// *** 设置value
gtk_range_set_value(GTK_RANGE(scale), 5.0);
/// *** 设置step和page(按住Ctrl+左右)的长度
gtk_range_set_increments(GTK_RANGE(scale), 1.0, 2.0);
/// *** 设置范围 min max
gtk_range_set_range(GTK_RANGE(scale), 1.0, 7.0);
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;
}
- 运行效果
很无聊