如果 Webkit.WebView 是 Gtk.Grid 的子项,为什么它不显示?
Why doesn't a Webkit.WebView display if it's a child of a Gtk.Grid?
在 the first gjs tutorial 中,它展示了如何创建仅包含 WebKit.WebView
的 Gtk.ApplicationWindow
。该页面上给出的示例代码对我来说工作正常。
但是如果我修改该代码以创建 Gtk.Grid
并将 WebView
放入其中,它会显示空白而不是显示 HTML。
此代码:
_buildUI() {
this._window = new Gtk.ApplicationWindow ({
application: this.application,
title: "example",
window_position: Gtk.WindowPosition.CENTER });
this._label = new Gtk.Label({label:"This is a label"});
this._page = new Webkit.WebView ();
this._page.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +
"/something.html", null));
this._grid = new Gtk.Grid();
this._grid.attach(this._label, 0, 0, 1, 1);
this._grid.attach(this._page, 0, 1, 1, 1);
this._window.add (this._grid);
this._window.show_all();
}
给出仅包含标签的 window,this._page
占用零 space。相反,如果我将 this._page
设置为新的 Gtk.Label
,我会看到两个元素。
strace 显示程序 正在 加载 HTML.
我错过了什么?
WebView的首选和自然宽高都是0像素,没有设置水平或垂直展开,所以没有分配任何space。
尝试:
this._page.set_hexpand(true);
this._page.set_vexpand(true);
在 the first gjs tutorial 中,它展示了如何创建仅包含 WebKit.WebView
的 Gtk.ApplicationWindow
。该页面上给出的示例代码对我来说工作正常。
但是如果我修改该代码以创建 Gtk.Grid
并将 WebView
放入其中,它会显示空白而不是显示 HTML。
此代码:
_buildUI() {
this._window = new Gtk.ApplicationWindow ({
application: this.application,
title: "example",
window_position: Gtk.WindowPosition.CENTER });
this._label = new Gtk.Label({label:"This is a label"});
this._page = new Webkit.WebView ();
this._page.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +
"/something.html", null));
this._grid = new Gtk.Grid();
this._grid.attach(this._label, 0, 0, 1, 1);
this._grid.attach(this._page, 0, 1, 1, 1);
this._window.add (this._grid);
this._window.show_all();
}
给出仅包含标签的 window,this._page
占用零 space。相反,如果我将 this._page
设置为新的 Gtk.Label
,我会看到两个元素。
strace 显示程序 正在 加载 HTML.
我错过了什么?
WebView的首选和自然宽高都是0像素,没有设置水平或垂直展开,所以没有分配任何space。
尝试:
this._page.set_hexpand(true);
this._page.set_vexpand(true);