#include #include class TVDerived : public Gtk::TextView { public: TVDerived() {} TVDerived( BaseObjectType* obj, const Glib::RefPtr< Gtk::Builder >& ) : Gtk::TextView( obj ) {} ~TVDerived() {} protected: bool on_button_press_event( GdkEventButton* event ) override { std::cout << "on button press event" << std::endl; return Gtk::TextView::on_button_press_event( event ); } }; class ExampleWindow : public Gtk::Window { public: ExampleWindow() { set_title( "get_widget_derived() Issue" ); set_default_size( 400, 200 ); const Glib::ustring ui_def = "\ \ \ True\ True\ True\ \ "; //TVDerived dummy; // solves the problem when uncommented auto refBuilder = Gtk::Builder::create(); try { refBuilder->add_from_string( ui_def ); } catch( ... ) { std::cout << "Glade Error! " << std::endl; return; } refBuilder->get_widget_derived( "tvd", m_TextView ); add( *m_TextView ); show_all_children(); } virtual ~ExampleWindow() {} protected: TVDerived* m_TextView; }; int main( int argc, char *argv[] ) { auto app = Gtk::Application::create( argc, argv, "org.gtkmm.example" ); ExampleWindow window; return app->run(window); }