如何运行两个python事件循环并共享相同的内存?
我正在使用twisted和PySide2创建一个可以通过网络发送信息的应用程序。然而,twisted 的reactor
和PySide2 的QApplication
都需要一个永远运行的事件循环。
我需要的是当twisted收到新消息时,我希望它更新PySide2窗口中的消息。因此,这意味着 twisted 和 PySide2 需要共享相同的内存。 这是一些示例代码:
def dataReceived(self, data): # a function inside a twisted class
QLabel.setText(data.decode()) # a pyside2 object
我无法使用线程,因为twisted和PySide2都需要在主线程中;而且多处理不能像QWidget对象那样共享内存。
那么我怎样才能同时运行这两个事件循环,并让它们共享相同的内存呢?
I am using twisted and PySide2 to create an app that can send information through network. However, twisted's reactor
and PySide2's QApplication
both need an event loop that runs forever.
What I need is when twisted receives a new message, I want it to update the message in the PySide2 Window. So that means twisted and PySide2 need to share the same memory.
Here's some sample code:
def dataReceived(self, data): # a function inside a twisted class
QLabel.setText(data.decode()) # a pyside2 object
I cannot use threading, because twisted and PySide2 both needed to be in the main thread; And multiprocessing can't share memory like QWidget objects.
So how can I run these two event loops at the same time, and let them share the same memory?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 https://pypi.org/project/ 并行运行 Twisted 和 Qt5 事件循环qt5reactor/。
You can run the Twisted and Qt5 event loops side-by-side using https://pypi.org/project/qt5reactor/.