Questions tagged «pygi»

5
如何在Python GObject Introspection应用程序中运行异步任务
我正在编写一个Python + GObject应用程序,该应用程序在启动时需要从磁盘读取大量数据。同步读取数据,大约需要10秒钟才能完成读取操作,在此期间,UI的加载会延迟。 我想异步运行任务,并在就绪时获得通知,而不会阻塞UI,大致类似: def take_ages(): read_a_huge_file_from_disk() def on_finished_long_task(): print "Finished!" run_long_task(task=take_ages, callback=on_finished_long_task) load_the_UI_without_blocking_on_long_task() 过去,我曾使用GTask进行此类操作,但我担心它的代码在3年内没有被触及,更不用说移植到GObject Introspection了。最重要的是,它在Ubuntu 12.04中不再可用。因此,我正在寻找一种以标准Python方式或GObject / GTK +标准方式异步运行任务的简便方法。 编辑:这是一些代码,其中包含我正在尝试执行的示例。我已经python-defer按照注释中的建议进行了尝试,但是我无法异步运行长任务并让UI加载而不必等待它完成。浏览测试代码。 是否有一种简单且广泛使用的方式来运行异步任务并在完成任务时得到通知?

2
PYGTK到PYGI:gtk.timeout_add等效项
我已经转换了一些Python代码以使用PYGI,但是我不知道如何转换这一行: gtk.timeout_add(PING_FREQUENCY * 1000, self.doWork) 明确地说,由于我不太了解PYGTK和PYGI之间的区别,因此我的新代码使用了 from gi.repository import Gtk from gi.repository import AppIndicator3 as appindicator 如此处所示https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Python_version 我要转换的完整代码在这里http://pastebin.com/raw.php?i=aUtASRpy 相当于什么 gtk.timeout_add(PING_FREQUENCY * 1000, self.doWork) 在PYGI中? 我还假设PYGI是制作统一指标的最现代方法 我还假设指示器最好检查某物的状态,而不是告诉指示器状态(推或拉)。可以让python程序每秒检查一次吗? 谢谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.