【问题标题】:Importing Gtk object from gi.repository从 gi.repository 导入 Gtk 对象
【发布时间】:2013-01-19 21:48:22
【问题描述】:

回到我的 GTK2 时代,我可以做一个

from gtk import Clipboard

从我的程序中访问剪贴板。

现在,我们必须内省地导入对象,如下所示:

from gi.repository import Gtk

我一直在摸索,看看是否有办法只从 Gtk 导入一个对象,例如:

from gi.repository import Gtk.Clipboard

当然这会导致 SyntaxError 异常。

有没有办法做我想做的事?我现在想要这个的一个原因是,我需要一种非常轻松的方式来访问脚本的剪贴板。我不想导入所有的 Gtk,因为它太过分了。我只想要 Clipboard 类,但我对 gi.repository 中的其他项目(如 Notify)很好奇。

谢谢,

纳尼

【问题讨论】:

    标签: python import introspection gtk3


    【解决方案1】:

    很容易。

    from gi.repository.Gtk import Clipboard
    

    【讨论】:

    • 太棒了!我已经搜索了 from..import 的语法,但从未发现你可以这样做(我仍然不完全理解 gi.repo 的工作原理,但我认为它必须像子文件夹中的其他模块一样)。我应该考虑试试这个!!!非常感谢。
    • @narnie 没问题 :) 有时是显而易见的事情让我们慢下来
    【解决方案2】:

    你不能只导入一个对象:你可以导入一个模块 (Gtk) 并将一个名称 (Clipboard) 添加到当前命名空间中,即它们应该是等价的:

    from gi.repository.Gtk import Clipboard
    

    from gi.repository import Gtk
    Clipboard = Gtk.Clipboard
    

    【讨论】:

      猜你喜欢
      • 2011-12-11
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2022-01-03
      • 1970-01-01
      • 2012-01-29
      • 2023-03-22
      相关资源
      最近更新 更多