I am a gtkmm and glade new bie.
I met a problem in adding handler to a menuitem.
I created menu in a glade file using glade 3.6.7. and I wanted to add a handler
function to menuitem.
I created a class in header file like following:
class gkass
{
public:
gkass();
Gtk::Window* get_window();
virtual ~gkass();
private:
Gtk::Window* gkassWindow;
int load_ui();
int connect_signals();
Gtk::Menu* mnuGlobal;
Gtk::MenuItem* mnuGlobalConfig;
Gtk::Button* test;
void on_mnuGlobalConfig_activate();
};
And in .cc file I wrote:
#include "gkass.h"
gkass::gkass()
{
load_ui();
connect_signals();
}
gkass::~gkass()
{
delete gkassWindow;
}
int gkass::load_ui()
{
//Load the GtkBuilder file and instantiate its widgets:
Glib::RefPtr<Gtk::Builder> refBuilder = Gtk::Builder::create();
try
{ //load xml file
refBuilder->add_from_file(glade_file_name);
}
catch(const Glib::FileError & ex)
{
std::cerr << "FileError: " << ex.what() << std::endl;
return 1;
}
catch(const Gtk::BuilderError & ex)
{
std::cerr << "BuilderError: " << ex.what() << std::endl;
return 1;
}
//Get the GtkBuilder-instantiated Window: wndPersonalConfig,
wndGlobalConfig, main_window
refBuilder->get_widget("main_window", gkassWindow);
refBuilder->get_widget("menu1", mnuGlobal);
refBuilder->get_widget("imnuGlobalConfig", mnuGlobalConfig);
return 0;
}
int gkass::connect_signals()
{
g_signal_connect( G_OBJECT(mnuGlobalConfig), "activate",
G_CALLBACK(on_mnuGlobalConfig_activate), NULL); // this line will
lead to an error when compiling
return 0;
}
Gtk::Window* gkass::get_window()
{
return gkassWindow;
}
void gkass::on_mnuGlobalConfig_activate()
{
Gtk::MessageDialog aa("This is mnuGlobalConfig.",
FALSE,
Gtk::MESSAGE_INFO,
Gtk::BUTTONS_OK,
TRUE);
aa.run();
}
When compiling , an error occurs that : In member function `int
gkass::connect_signals()': argument of type `void (gkass::)()' does not match
`void (*)()'
I can not found any solutions using above method by Google. The examples all
adds menuitems in code file, not in glade file. So please help me.
wallace.lee [email protected]
2009-9-2
_________________________________________________________________
心跳斗地主新版体验,给你360度的心跳体验!
http://club.msn.cn/_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list