纠结体 发表于 2014-11-18 21:38:59

求助 如何用一个按钮让两个文本显示数据

本人是一个学生,刚接触GTK,用的有点摸瞎。
先看一下程序吧,这只是一个简单的测试程序。我在网上看到可以用结构体来返回多个参数,但是试了半天,还是不对,各位前辈能不能帮帮忙看看。
我的目的是让按钮向两个label1和label2中显示数据;顺便提一下我用的是gtk+3.0;不知道他和2.0有没有差别。
希望各位前辈帮帮小弟。谢谢!!!!
#include <stdio.h>
#include <math.h>
#include <gtk/gtk.h>
#include <windows.h>
#include <string.h>
#include <stdlib.h>

gint i=0;/*外部变量声明区*/
gint j=0;
char buf;

char cpu;
char name2;
char name1;
struct label
{
GtkWidget*label1;
GtkWidget*label2;
};
voidcreate_name()/*随机产生进程,并将名字显示*/
{
char name,the_max,the_min;
srand(i);
the_min='A';
the_max='z';
name=the_min+rand()%(the_max-the_min);
sprintf(name2,"%c",name);
strcat(buf,name2);
i++;

}
void decrease(GtkWidget *widget,gpointer data)
{
    struct label *label0=(struct label*)data;
    GtkWidget *label1=label0->label1;
    GtkWidget *label2=label0->label2;
    /*label1=label0->label1;
    label2=label0->label2;*/
    create_name();
    j++;
    sprintf(cpu,"%d",j);
   
   gtk_label_set_text(GTK_LABEL(label1),cpu);
   gtk_label_set_text(GTK_LABEL(label2),buf);

      
}
int main(int argc,char **argv)
{
   
    GtkWidget *window;
    GtkWidget *frame;
   
    GtkWidget *minus;
    static struct label *label0;
   
   
    gtk_init(&argc,&argv);
    window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window),250,180);
    gtk_window_set_title(GTK_WINDOW(window),"-");

   frame=gtk_fixed_new();
   gtk_container_add(GTK_CONTAINER(window),frame);
   
   
   
   minus=gtk_button_new_with_label("-");
   gtk_widget_set_size_request(minus,80,35);
   gtk_fixed_put(GTK_FIXED(frame),minus,50,80);
   
   label0->label1=gtk_label_new("0");
   gtk_fixed_put(GTK_FIXED(frame),label0->label1,190,35);
   label0->label2=gtk_label_new("0");
   gtk_fixed_put(GTK_FIXED(frame),label0->label2,190,95);
   
   gtk_widget_show_all(window);
   
   g_signal_connect(window,"destroy",
      G_CALLBACK(gtk_main_quit),NULL);
      
   
    g_signal_connect(minus,"changed",G_CALLBACK(decrease),&label0);
   gtk_main();
return 0;
}

纠结体 发表于 2014-11-18 21:40:19

本人是学生,各位前辈帮帮忙,看看我这个程序有什么问题

ttttt 发表于 2014-11-19 20:39:08

纠结体 发表于 2014-11-19 21:28:21

谢谢大大能够花时间为小弟解惑,程序成功运行了,不过还是有两警告45 D:\Dev-Cpp\main2.c passing arg 1 of `gtk_label_set_text' from incompatible pointer type
46 D:\Dev-Cpp\main2.c passing arg 1 of `gtk_label_set_text' from incompatible pointer type
说是指针不符。这是怎么回事?

ttttt 发表于 2014-11-19 22:39:14

纠结体 发表于 2014-11-20 00:07:20

谢谢
页: [1]
查看完整版本: 求助 如何用一个按钮让两个文本显示数据