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에서, 나는 음모를 보여 소켓 창을 기대하고 이제
,하지만 아무것도 :
.\socket
은 그 때 나는 해당 창 위의 ID로 X11 터미널에서의 gnuplot을 실행 일어난다. 내가 여기서 뭘 잘못하고 있니?
저는 64 비트 우분투 16.04를 사용하고 있습니다.
아마도 : [Gnuplot x11 창을 Gtk3 소켓에 임베드 할 수 없습니다.] (http://stackoverflow.com/questions/41209199/cannot-embed-gnuplot-x11-window-into-gtk3-socket?rq=1) – user8153