我正在修改C ++和gtkmm,尝试创建一个调用.glade文件来构建Gtk而非基本接口的自定义类。此类派生自Gtk::Window
,但是当我在类本身上调用get_widget
方法时,我收到错误:
types ‘const T_Widget*’ and ‘myClass* const’ have incompatible cv-qualifiers
班级定义:
class myClass: public Gtk::Window{
public:
myClass();
protected:
//...
Glib::RefPtr<Gtk::Builder> builder;
//...
}
但是我试图将glade文件中的数据上传到我的类中(在类构造函数上):
//...
builder = Gtk::Builder::create_from_file("../glade/myClass.glade");
builder->get_widget("window1",this);
//...
答案 0 :(得分:1)
myClass* const
与const myClass*
不同。
在第一个指针是常量,在第二个指针是对象。
只需声明它:const myClass*
但你的问题似乎无关(我的不好),GTK对派生类有一个特殊的功能: Gtk::Builder::get_widget_derived, 请改用它。