免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2856 | 回复: 2
打印 上一主题 下一主题

[C] gtk_fixed_put奇怪的警告 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-10 18:56 |只看该作者 |倒序浏览
Gtk-CRITICAL **: gtk_fixed_put: assertion `GTK_IS_WIDGET (widget)' failed


GtkWidget *Image_animation,*Image_barship[3],*Image_jilu[70],*Image_flash[7];

。。。
                for(i=0,id=0;i<9;i++)
                {
                        y=270+10+i*(25+;
                        if(i>=1)
                                y+=9;               
                        for(j=0;j<7;j++,id++)
                        {
                                x=5+10+j*(25+3);
                                if(j==6)
                                        x+=5;
                               
                                Image_jilu[id]=gtk_image_new();
                                gtk_widget_set_size_request(Image_jilu[id],25,25);                               
                                gtk_fixed_put(GTK_FIXED(fixed),Image_jilu[id],x,y);
                               
                        }
                }
。。。               
                /*错误发生在如下代码中*/
                for(i=0;i<7;i++)
                {
                        if((Image_flash[id]=gtk_image_new())==NULL)
                                abort();
                        //gtk_widget_set_size_request(Image_flash[i],25,25);                       
                        gtk_fixed_put(GTK_FIXED(fixed),GTK_WIDGET(Image_flash[i]),i*25,0);
                }
return fixed;

请教:在错误代码之前有很多相同的代码块,运行并没有问题,为什么增加了最后几个IMAGE代码行后,运行会出现如下警告?Image_flash[id]创建应该是成功没有问题的,为什么FIXED断言它不是WIDGET对象呢?

论坛徽章:
0
2 [报告]
发表于 2010-09-11 01:09 |只看该作者
#include "program_face.h"

GtkWidget *Label_timer,*Label_array1[60],*Label_array2[16],*Label_information[4];
GtkWidget *Image_animation,*Image_barship[3],*Image_jilu[70],*Image_flash[7];
GdkColor Color1={0,0xffff,0x0000,0x0000},Color2={0,0xffff,0xffff,0xffff};/*红色,白色*/
gboolean Run=FALSE;
GdkPixbuf *Source_pixbuf[2];
Rect Button_array1[60],Button_array2[16],Barship_array[3],Fen_area;/*分别存储下注门、筹码、上退分区域坐*/
guint16 Barship_id=0,Barship_value[3]={10,50,100},Bar_now=10;
Tanimation_create Animation,Barship;

用GDB查了一下,发现一个更不解的问题,就在执行如上问题代码区时,另一个全局变量Button_array1[39]被篡改了;
即执行这部分代码时这个变量的值就莫名被修改:
                for(i=0;i<7;i++)
                {
                        if((Image_flash[id]=gtk_image_new())==NULL)
                                abort();
                        //gtk_widget_set_size_request(Image_flash[i],25,25);                       
                        gtk_fixed_put(GTK_FIXED(fixed),GTK_WIDGET(Image_flash[i]),i*25,0);
                }

万分不解,难道跟上面一大堆全局变量声明方式有关?

论坛徽章:
0
3 [报告]
发表于 2010-09-11 02:03 |只看该作者
不好意思,发现问题所在了
借用了ID代替I
for(i=0;i<7;i++)
                {
                        if((Image_flash[id]=gtk_image_new())==NULL)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP