2013-01-19 37 views
0

早在我GTK2天的Gtk对象,我可以做一个导入从gi.repository

from gtk import Clipboard 

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

现在日子里,我们必须内省导入对象为:

from gi.repository import Gtk 

我一直在抓我的头,看看是否有是从基于GTK进口只是一个物体,像这样:

from gi.repository import Gtk.Clipboard 

当然这会导致SyntaxError异常。

有没有办法做我想做的事情?我现在需要的一个原因是,我需要一种非常轻的方式来访问脚本的剪贴板。我不想导入所有的Gtk,因为它是过度的/过度杀伤性的。我只是想剪贴板类,但我很好奇gi.repository中的其他项目(如通知)。

感谢,

Narnie

回答

2

变得非常容易。

from gi.repository.Gtk import Clipboard 
+0

太棒了!我已经从from..import搜索语法,但从来没有发现你可以这样做(我仍然不完全理解gi.repo是如何工作的,但我发现它必须像子文件夹中的其他模块一样)。我应该想到试试这个! 非常感谢。 – narnie

+1

@ narnie没问题:)有时候这是显而易见的事情,让我们放慢脚步 –

1

你不能只导入的对象:你可以导入一个模块(GTK),并添加一个名字(剪贴板)到当前名字空间,即,这些应该是等价的:

from gi.repository.Gtk import Clipboard 

from gi.repository import Gtk 
Clipboard = Gtk.Clipboard