如果我在之后立即关闭应用程序,Gtk 不会将文本保存到剪贴板

Gtk does not save text to the clipboard if I close the app right after

我是 Gnome 开发新手。

我正在尝试创建一个按钮,当按下该按钮时,会将其标签的内容复制到剪贴板并关闭应用程序。

这是我的代码,其中“self”是一个扩展 Gtk.Window.

的 class

如果我不关闭应用程序,它就可以正常工作。

谢谢

 ​    ​def​ ​copy_and_quit​(​self​, ​button​: ​Gtk​.​Button​): 
 ​        ​clip​ ​=​ ​Gtk​.​Clipboard​.​get​(​Gdk​.​SELECTION_CLIPBOARD​) 
 ​        ​clip​.​set_text​(​button​.​get_label​(), ​-​1​) 
 ​        ​self​.​close​()

编辑: 我是 Gtk 开发的菜鸟。我按照 this 示例将我的应用程序重新分解为 Gtk.Application 和 Gtk.Window。

现在我做

 ​    ​def​ ​copy_and_quit​(​self​, ​button​: ​Gtk​.​Button​): 
 ​        ​clip​ ​=​ ​Gtk​.​Clipboard​.​get​(​Gdk​.​SELECTION_CLIPBOARD​) 
 ​        ​clip​.​set_text​(​button​.​get_label​(), ​-​1​) 
         Gtk.main_quit()

哪个有效。

再见

默认情况下,剪贴板内容存储在应用程序中,只有在您粘贴时才会复制到另一个应用程序。这意味着当程序退出时,剪贴板内容不再可用。

gtk_clipboard_store() 将剪贴板内容存储在应用程序外部以避免此问题。 GtkApplication 在关闭时会自动调用它,但如果您不使用 GtkApplication,则需要手动调用它。