我有一个Python应用程序,它使用Tkinter GUI和Twisted。Twisted支持Tkinter主循环,因此两者可以很好地协同工作。
现在我想在应用程序中添加一些d-Bus代码。但是查看文档,我看不出如何将D-Bus集成到Tkinter主循环中。Python的D-Bus教程说它有主循环支持:
- glib主循环
- Qt主回路
让PythonD-Bus与Tkinter主循环一起工作会涉及到什么?
我没有意识到这一点,但除了被称为"引用实现"的python-dbus
之外,还有几个用于Python的D-Bus绑定。
一个是Twisted的D-Bus绑定。我尝试过这个用法示例(减去reactor.stop()
调用),它在我的应用程序中运行良好。
在PEP 3156 asyncio
中,也有一些关于概括Python事件循环的工作正在进行。一旦各种Python框架增加了对asyncio
风格事件循环的支持,这将有望在未来简化事情。
- TKinter建议书的PEP 3156
- python-dbusx--用于PEP 3156的D-Bus