Ich versuche das gnuplot Fenster in meine Anwendung einzubetten, indem ich das Socket/Plug Konzept in der gtkmm 3 Bibliothek verwende. Ich habe das Beispiel auf der offiziellen Seite here verfolgt und alles funktioniert wie erwartet.Gnuplot 5 Fenster in Gtkmm einbetten 3
Dann ging ich zum gnuplot Fenster einbetten. Ich veränderte die socket.cpp wie folgt:
#include <iostream>
#include <fstream>
#include <gtkmm.h>
#include <gtkmm/socket.h>
using namespace std;
class MySocketWindow : public Gtk::Window
{
public:
MySocketWindow()
{
auto socket = Gtk::manage(new Gtk::Socket());
add(*socket);
cout << "Socket id is: " << hex << socket->get_id() << endl;
show_all();
}
};
int main(int argc, char** argv)
{
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.socket");
MySocketWindow win;
app->run(win);
return 0;
}
ich mit den Code kompilieren/bauen:
g++ --std=c++11 socket.cpp -o socket `pkg-config gtkmm-3.0 --cflags --libs`
Und es laufen. Ein schwarzes Socket-Fenster mit der Nachricht Socket id is 3e0000b
erscheint auf dem Terminal.
.\socket
Dann laufe ich gnuplot in x11-Terminal mit der entsprechenden Fenster-ID oben:
Wenn ich jetzt plot sin(x)
in gnuplot, ich die Steckdose Fenster erwarten die Handlung zu zeigen, aber nichts das passiert. Was mache ich hier falsch?
Ich benutze Ubuntu 16.04, 64-Bit.
Möglicherweise verwandt: [Kann gnuplot x11-Fenster nicht in Gtk3-Sockel einbetten] (http://stackoverflow.com/questions/41209199/cannot-embed-gnuplot-x11-window-into-gtk3-socket?rq=1) – user8153