Python D-Bus 和 Tkinter 主循环集成

Posted

技术标签:

【中文标题】Python D-Bus 和 Tkinter 主循环集成【英文标题】:Python D-Bus and Tkinter main loop integration 【发布时间】:2013-07-27 16:15:45 【问题描述】:

我有一个使用 Tkinter GUI 和 Twisted 的 Python 应用程序。 Twisted 支持 Tkinter 主循环,因此两者可以很好地协同工作。

现在我想在应用程序中添加一些 D-Bus 代码。但是查看文档,我看不到如何将 D-Bus 集成到 Tkinter 主循环中。 Python D-Bus tutorial 表示它有主循环支持:

glib 主循环 Qt 主循环

让 Python D-Bus 与 Tkinter 主循环一起工作会涉及什么?

【问题讨论】:

【参考方案1】:

我没有意识到,但是除了python-dbus之外还有several D-Bus bindings for Python,这被称为“参考实现”。

一个是D-Bus binding for Twisted。我尝试了usage example(减去reactor.stop() 调用),它在我的应用程序中运行良好。

在PEP 3156asyncio 中也有一些关于泛化 Python 事件循环的工作。一旦各种 Python 框架添加了对 asyncio 样式事件循环的支持,这有望在未来简化事情。

PEP 3156 for TKinter proposal python-dbusx — PEP 3156 的 D-Bus

【讨论】:

不管这个答案如何,我仍然很想知道 python-dbus 如何集成到 Tkinter 主循环中。

以上是关于Python D-Bus 和 Tkinter 主循环集成的主要内容,如果未能解决你的问题,请参考以下文章

用 pygobject 编写 D-Bus 服务?

Python+D-Bus+BlueZ 5:无法读取对象的属性?

D-Bus D-Feet 发送字符串字典,Python 语法变体

关于使用 D-Bus 异步方法调用的 Python 中的线程安全

如何使用 python 通过 D-Bus 从 Skype 接收事件?

带有 MiNGW 的 Windows 上的 Python D-Bus