gtk_fixed_put奇怪的警告
时间:2010-09-10
来源:互联网
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对象呢?
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对象呢?
作者: 凌彬严 发布时间: 2010-09-10
#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);
}
万分不解,难道跟上面一大堆全局变量声明方式有关?
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);
}
万分不解,难道跟上面一大堆全局变量声明方式有关?
作者: 凌彬严 发布时间: 2010-09-11
不好意思,发现问题所在了
借用了ID代替I
for(i=0;i<7;i++)
{
if((Image_flash[id]=gtk_image_new())==NULL)
借用了ID代替I
for(i=0;i<7;i++)
{
if((Image_flash[id]=gtk_image_new())==NULL)
作者: 凌彬严 发布时间: 2010-09-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28