【发布时间】:2017-09-09 02:11:13
【问题描述】:
我正在尝试使用 gtkmm 3 库中的套接字/插头概念将 gnuplot 窗口嵌入到我的应用程序中。我已经按照官方页面here中的示例进行操作,一切都按预期进行。
然后我开始嵌入 gnuplot 窗口。我修改了socket.cpp如下:
#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 id is 3e0000b 消息。
.\socket
然后我在 x11 终端中运行 gnuplot,上面对应的窗口 id:
现在,当我在 gnuplot 中 plot sin(x) 时,我期待套接字窗口显示情节,但没有任何反应。我在这里做错了什么?
我正在运行 Ubuntu 16.04,64 位。
【问题讨论】: