linux gtk+学习 第一个例子

#include <gtk/gtk.h>
GdkPixbuf *createPixBuf(const gchar* filename)
{
    GdkPixbuf *pixbuf;
    GError *error=NULL;
    pixbuf = gdk_pixbuf_new_from_file(filename,&error);
    if(!pixbuf){
    fprintf(stderr,"%s\n",error->message);
    g_error_free(error);
}
return pixbuf;
}
gint count = 0;
char buf[5];
void increase(GtkWidget *widget,gpointer label)
{
    count++;
    sprintf(buf,"%d",count);
    gtk_label_set_text(label,buf);
}
void decrease(GtkWidget *widget,gpointer label)
{
    count--;
    sprintf(buf,"%d",count);
    gtk_label_set_text(label,buf);
}
int main(int argc,char *argv[])
{
    GtkWidget *window;
    GtkWidget *label,*plus,*minus,*frame;
    gtk_init(&argc,&argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Center");
    gtk_window_set_default_size(GTK_WINDOW(window),280,150);
    gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
    gtk_window_set_icon(GTK_WINDOW(window),createPixBuf("/home/qw/图片/花.png"));
    frame = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(window),frame);
    plus = gtk_button_new_with_label("+");
    gtk_widget_set_size_request(plus,80,35);
    gtk_fixed_put(GTK_FIXED(frame),plus,50,20);
    minus = gtk_button_new_with_label("-");
    gtk_widget_set_size_request(minus,80,35);
    gtk_fixed_put(GTK_FIXED(frame),minus,50,80);
    label = gtk_label_new("0");
    gtk_fixed_put(GTK_FIXED(frame),label,190,58);
    g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);
    g_signal_connect(plus,"clicked",G_CALLBACK(increase),label);
    g_signal_connect(minus,"clicked",G_CALLBACK(decrease),label);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值