Я работаю с 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);
//...
myClass* const
это не то же самое, что const myClass*
,
В первом указатель является постоянным, а во втором — объектом.
Просто объявите это как: const myClass*
Но ваша проблема кажется не связанной (моя проблема), у GTK есть специальная функция для производного класса:
Gtk :: Builder :: get_widget_derived,
используйте это вместо
Других решений пока нет …