如何在 gjs 中的小部件之间共享内容

How to share contents between widgets in gjs

我正在尝试创建一个简单的 Web 编辑器演示。我想要一个 web 视图小部件来呈现 gtk 源视图小部件的内容... 我绘制了小部件,但我无法从 sourceview 中获取内容以将其提供给 webview。 我想我应该使用一个缓冲区,但我不能让他们共享一个缓冲区。 那应该如何工作? 任何指针将不胜感激。

我的想法是这样的:

const htmlBuffer = new GtkSource.Buffer();
const messagehtml = new GtkSource.View(htmlBuffer);
const webView = new Webkit.WebView({ vexpand: true });

htmlBuffer.connect('changed', upDateWebView);

然后在upDateWebView()方法中,调用

webView.load_html(htmlBuffer);

所以...我终于让它像这样工作了:

const htmlBuffer = new GtkSource.Buffer();
const messagehtml = new GtkSource.View({ buffer: htmlBuffer });
const webView = new Webkit.WebView({ vexpand: true });


  htmlBuffer.connect('changed', function () {
    webView.load_html(htmlBuffer.text, null);
  });