2017-09-09 3 views
2

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:

enter image description here

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.

+0

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

Antwort

0

Ich habe die Ursache des Problems auf Gnuplot Website gefunden - siehe meine original Frage. Jetzt muss noch herausgefunden werden, wie man es auf der Site des Sockets reparieren kann.