如何克隆 GtkWindow 及其内容?

How to clone GtkWindow with its content?

我正在使用带有 GTK 3 的 C 和 Glade。我想创建一种简单的编程语言。我创建了基础:代码编辑器、输出 window 等。但是当用户关闭输出 window 并尝试重新打开时,此消息显示:

(ltc:3443): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GObject'
(ltc:3443): GLib-GObject-CRITICAL **: g_object_class_list_properties: assertion 'G_IS_OBJECT_CLASS (class)' failed

我认为问题是由于当用户关闭 window 时,它的结构在内存中也被破坏了。

如何克隆 window?我尝试了简单的 GObject 克隆算法,但它没有克隆 window 内容。

是否可以使 window 在关闭或克隆时不被破坏?

可能您想要的不是克隆 window,而是确保它在关闭时不被破坏,而是隐藏。

尝试连接到 delete-event 信号并使用 gtk_widget_hide_on_delete() 作为信号处理程序,或者在您的信号处理程序中调用它。