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

标签 python gtk gnome pygobject gdk

我是 Gnome 开发新手。

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

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

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

谢谢

 ​    ​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 开发的菜鸟。我将我的应用程序重新分解为带有 Gtk.Window 的 Gtk.Application,遵循 this。示例。

现在我会了

 ​    ​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,则需要手动调用它。

关于python - 如果我在之后立即关闭应用程序,Gtk 不会将文本保存到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70480878/

相关文章:

python - 创建一个边框比比皆是一个 HBox/Any Widget

linux - gtk3 动画进度条不可能?

linux - 使用 gnome 终端获取新选项卡

linux - 剪贴板 api 是否已从 gtk4 中删除?

python - 在不包括某些数字的范围内生成随机数

python - 使用特定字符串作为前缀 Git 状态文件路径

python - 如何在 Pandas 中重新格式化 value_counts() 分析以获取大量列

python - Django request.user 在第三方重定向后成为 AnonymousUser

widget - 一个覆盖 GTK 工具栏/小部件

ubuntu - 在 Gnome "Run Application"对话框中访问别名