1

窓があります。このウィンドウには 2 つのボタンが必要です。1つはプラグで、もう1つは普通です。

私は次のことをします

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 のインスタンスをソケットに埋め込むにはどうすればよいですか?

4

1 に答える 1