gtk+图形编程的时候出现的错误,怎么破?invalid cast

问题描述

gtk+图形编程的时候出现的错误,怎么破?invalid cast
         用GtkButton发出“clicked”信号传递GtkNotebook参数,以在回调函数中调用gtk_notebook_remove_page函数,出错

    GLib-GObject-WARNING **: invalid cast from 'GtkButton' to 'GtkNotebook'
 源码:
      button=gtk_button_new_with_label("tab_os");
  119     g_signal_connect_swapped(GTK_OBJECT(button),"clicked",G_CALLBACK(tab_po),notebook);
  120     gtk_table_attach_defaults(GTK_TABLE(table),button,2,3,1,2);
         回调函数:
   void tab_po(GtkWidget*widget,gpointer notebook)
  24    {
    25    gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook),GTK_POS_BOTTOM);
  26    }

         用GtkButton发出“clicked”信号传递GtkNotebook参数,以在回调函数中调用gtk_notebook_remove_page函数,出错
 1  #include
 2  #include
 3  GtkWidget*entry;
 4  void notebook_remove(GtkWidget*button,gpointer notebook)
 5  {
 6    gint page;
 7    gchar buffer[20];
 8    page=gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
 9    snprintf(buffer,20,"It is the %dth page",page);
10    gtk_entry_set_text(GTK_ENTRY(entry),buffer);
11    gtk_notebook_remove_page(GTK_NOTEBOOK(notebook),page);
12  }
13  int main(int argc,char**argv)
14  {
15    GtkWidget*window;
16    GtkWidget*tabel;
17    GtkWidget*notebook;
18    GtkWidget*button;
19    GtkWidget*label;
20    gchar bufferl[40];
21    gint i;
22    gtk_init(&argc,&argv);
23    window=gtk_dialog_new();
24    gtk_window_set_default_size(GTK_WINDOW(window),600,200);
25    notebook=gtk_notebook_new();
26    for(i=0;ivbox),notebook,FALSE,FALSE,0);
33    entry=gtk_entry_new();
34    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),entry,FALSE,FALSE,0);
35    gtk_entry_set_text(GTK_ENTRY(entry),"Nothing happens");
36    button=gtk_button_new_with_mnemonic("remove");
37    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->action_area),button,FALSE,FALSE,0);
38    g_signal_connect_swapped(GTK_OBJECT(button),"clicked",G_CALLBACK(notebook_remove),notebook);
39    button=gtk_button_new_with_label("close app");
40    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->action_area),button,FALSE,FALSE,0);
41    g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(gtk_main_quit),NULL);
42    gtk_widget_show_all(window);
43    gtk_main();
44    return 0;
45  }
46

解决方案

人家需要一个notebook,你传了一个button,检查下你的函数参数,传错了。

时间: 2024-10-03 16:59:57

gtk+图形编程的时候出现的错误,怎么破?invalid cast的相关文章

使用MonoDevelop开发GTK#图形界面

Mono一直到现在的2.8已经完全可以胜任一些比较小的项目了,但相关的开发文档与教程一直比较匮乏,中文材料更是屈指可数.虽然Mono与.net很多类库都是通用的,但Mono仍然有为数不少的扩充类库,其中最重要的就是对于GTK二次封装的GTK#图形界面类库了,目前想要开发原生的Mono图形界面程序此类库必不可少.在MonoDevelop里已经支持对于GTK#界面设计的直接拖放,有相关经验的开发人员可以很快上手. Mono官方网站上也有一篇GTK#开发的入门文档:Stetic GUI Designe

VS2013中做图形编程用graphics出错

问题描述 VS2013中做图形编程用graphics出错 error C4996: 'kbhit': The POSIX name for this item is deprecated. Instead, use the ISO C++ conforman 在VS2013中用到graphics库函数报这个错,在网上看了几个解决办法,什么加_getch啊,加宏定义的啊都没有用,这个错误到底是什么原因呢,我的库函数配的是easyx,应该没问题啊,求大神指点 解决方案 vs2013中配置OpengG

一起谈.NET技术,使用MonoDevelop开发GTK#图形界面

Mono一直到现在的2.8已经完全可以胜任一些比较小的项目了,但相关的开发文档与教程一直比较匮乏,中文材料更是屈指可数.虽然Mono与.net很多类库都是通用的,但Mono仍然有为数不少的扩充类库,其中最重要的就是对于GTK二次封装的GTK#图形界面类库了,目前想要开发原生的Mono图形界面程序此类库必不可少.在MonoDevelop里已经支持对于GTK#界面设计的直接拖放,有相关经验的开发人员可以很快上手. Mono官方网站上也有一篇GTK#开发的入门文档:Stetic GUI Designe

WCF服务编程设计规范(4):操作与错误设计

WCF服务编程设计规范(4):操作与错误设计.主要包含服务操作与调用.错误设计规范.中英对照.欢迎留言交流.下一节会介绍事务.并发管理和队列服务的内容. Operations and Calls 操作与调用 1. Do not treat one-way calls as asynchronous calls. 不要把单向调用作为异步调用 2. Do not treat one-way calls as concurrent calls. 不要把单向调用作为并发调用 3. Expect exce

struct-有关C++图形编程中模板定义的问题

问题描述 有关C++图形编程中模板定义的问题 template <typename T> struct tvec3 { typedef T value_type; typedef std::size_t size_type; typedef tvec3<T> type; value_type x; value_type y; value_type z; size_type length() const { return 3; } value_type const & ope

vc++图像-VC++中图形编程一些函数定义问题

问题描述 VC++中图形编程一些函数定义问题 有没有知道下列几个函数的函数定义即函数体的?获取窗口显存指针函数GetImageBufferCOLORREF BGR(COLORREF color);(显存操作绘制烟花)SetWorkingImage( &fm );(储存烟花的像素点颜色)loadimage( &fm./fire/flower.jpg"" 3120 240 );(储存烟花的像素点颜色)

source-java 编程中出现下面的错误

问题描述 java 编程中出现下面的错误 package Chat; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.*; import java.util.*; public class chatFrame extends JFrame implements ActionListener,Runnable{ LoginFrame frame=n

接口-怎么判断Android编程中出现的各种错误情况?

问题描述 怎么判断Android编程中出现的各种错误情况? 比如请求json数据接口,返回一个json数组,首先要判断message对象中的obj是否为null,然后转换为String去做json数组解析,解析过程中还要判断异常,解析成一个List后,还要判断list是否为null或size是否为0,再都检查完后才能做正确的UI操作,感觉好繁琐,请问有没有便捷的方法,或者说哪些步骤是可以省略的? 解决方案 这些都是一步一步的,也是有必要的,比如你不判断,如果message对象中的obj为空,或者

服务器-Kindeditor上传图片错误怎么破?!!

问题描述 Kindeditor上传图片错误怎么破?!! 在本地的myeclipse中都没有问题 上图 但是一放到服务器上面就报错 500 jar包也没问题 struts过滤器也已经配置过了 本来我服务器上面环境是jdk1.7 本地是jdk1.6 然后我把本地的换成jdk1.7本地也没问题..就是服务器一直报这个错~~~求各路高手帮帮忙,帮小弟解决一下问题 ..谢谢!! 解决方案 KindEditor图片上传到七牛云kindeditor上图片上传的实现KindEditor图片上传C#类 解决方案二