[英]Embed gnuplot inside existing QtWidget
我正在用C ++创建一个(伪)实时绘图应用程序,使用gnuplot作为我的后端进行绘图。 我的一个要求是,绘图必须位于现有窗口内,而不是具有单独的绘图窗口(gnuplot默认为)。
Gnuplot有一个选项来指定(Qt)小部件ID,这似乎适合我的用例:
set terminal qt widget <id>
我试过传递我的QtWidget::effectiveWinId()
里面的值无济于事。
更新 :尝试使用窗口ID QtWidget::winId()
的内部值,但没有运气。
问题是我找不到任何关于<id>
应该是什么的文档。 这是gnuplot的开发人员的意图吗?
这是我的代码示例:
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtNetwork/QLocalSocket>
int main()
{
QApplication app(argc, argv);
QWidget win(nullptr, Qt::Window);
QWidget *window = win.window();
win.show();
std::cout << "effective win id: " << window->effectiveWinId() << "\n";
std::cout << "effective win id: " << win.effectiveWinId() << "\n";
return app.exec();
}
在gnuplot中:
gnuplot> set term qt widget <value from effectiveWinId>
gnuplot> plot x
Could not connect to existing qt widget. Starting a new one.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.