Я только начал работать с gtk (в частности, с gtkmm), и я пытаюсь определить наилучший способ построения моих представлений.
Я использую Glade для сборки foo.glade
, которая содержит TreeView
звонил myTreeView
.
В настоящее время я делаю следующее:
Glib::RefPtr<Gtk::Builder> p_builder;
p_builder = Gtk::Builder::create_from_file("/my/glade/file");
...
// I want to instantiate a new view, called MyView, which is just a treeView. This class contains all the logic related to setting up the view and linking it to some store
std::shared_ptr<MyView> my_view;
Gtk::TreeView* raw_view;
p_builder->get_widget<Gtk::TreeView>("myTreeView", raw_view);
my_view = std::make_shared<MyView>(raw_view);
Это похоже на очень плохую модель.Я хочу разбить свои представления на эти пользовательские классы, но это не самый элегантный способ сделать это.
Есть ли здесь рекомендуемый подход?Что-то вроде
class MyView final : public Gtk::TreeView
Правильно ли я это делаю?
Примечание: мне кажется, это дает мне большую гибкость, так как я могу пройти свой курс и получить помощь RAIIс разрушением.Тем не менее, это кажется некрасивым, поэтому я спрашиваю.