2017-09-09 8 views
2

gtkmm 3 라이브러리의 소켓/플러그 개념을 사용하여 gnuplot 창을 내 응용 프로그램에 임베드하려고합니다. 나는 공식 페이지 here에있는 예제를 따라 왔으며 모든 것이 예상대로 작동한다.gnuplot 5 창을 Gtkmm 3에 포함하기

그럼 gnuplot 창을 임베딩하는 것으로 옮겼습니다. 내가 컴파일

#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; 
} 

/를 사용하여 코드 작성 :

g++ --std=c++11 socket.cpp -o socket `pkg-config gtkmm-3.0 --cflags --libs` 

를 그리고 그것을 실행 다음과 같이 나는 socket.cpp를 수정했습니다. 터미널에 Socket id is 3e0000b 메시지가 인쇄 된 검은 색 소켓 창이 나타납니다. I plot sin(x)의 gnuplot에서, 나는 음모를 보여 소켓 창을 기대하고 이제

enter image description here

,하지만 아무것도 :

.\socket 

은 그 때 나는 해당 창 위의 ID로 X11 터미널에서의 gnuplot을 실행 일어난다. 내가 여기서 뭘 잘못하고 있니?

저는 64 비트 우분투 16.04를 사용하고 있습니다.

+0

아마도 : [Gnuplot x11 창을 Gtk3 소켓에 임베드 할 수 없습니다.] (http://stackoverflow.com/questions/41209199/cannot-embed-gnuplot-x11-window-into-gtk3-socket?rq=1) – user8153

답변

0

gnuplot의 사이트에서 문제의 원인을 발견했습니다. 내 original 질문을 참조하십시오. 이제 소켓의 사이트에서 문제를 해결하는 방법을 찾았습니다.