Как я могу вставить Gtk::Plug в Gtk Socket?
У меня есть окно. В этом окне я хочу две кнопки. Один будет заглушкой, а другой - просто нормальным.
Я делаю следующее
plug.cc
#include <gtkmm.h>
#include <gtkmm/plug.h>
class PlugButton : public Gtk::Plug{
public:
PlugButton(){add(button); id = get_id();}
int id;
Gtk::Button button{"Plug Button"};
}
main.cc
Gtk::HBox box;
Gtk::Button button{"Normal Button"};
Gtk::Socket socket;// I have included gtkmm/socket.h
PlugButton plug;
box.pack_start(button);
box.pack_end(socket);
socket.add_id(plug.id);
window.add(box);
window.show_all_children();
Это компилируется но я получаю
gtk_socket_add_id: assertion '_gtk_widget_get_anchored (GTK_WIDGET (socket))' failed
Как я могу вставить экземпляр Gtk::Plug в сокет?
0 ответов
Как написано в документации:
GtkSocket уже должен быть добавлен в окно верхнего уровня, прежде чем вы сможете сделать этот вызов.
Итак, ваш код должен быть:
window.add(box);
socket.add_id(plug.id);