1

我有一个简单的 PySide 应用程序,它使用 Phonon 播放视频。

一切在 IDLE 中运行正常,但是当我制作一个可执行文件(使用 py2exe)并运行它时,我收到以下错误:

QObject: Cannot create children for a parent that is in a different thread.

(Parent is MediaObject(0x3c614b8), parent's thread is QThread(0x44e2ed0), current
thread is QThread(0x3c6fad0)


我在解决该问题时尝试的一件事是手动将 MediaObject 移动到 QApplication 线程,使用QObject::moveToThread(QApplication.instance().thread()). 这没有任何效果,事实证明 Media Object 线程已经与 QApplication 的线程相同。一些应用程序输出:

App thread:<PySide.QtCore.QThread object at 0x03C1DF58>
Creating media object...
Media obj thread:<PySide.QtCore.QThread object at 0x03C1DF58>


所以我的问题是:

  1. 有没有办法让我的应用程序在使用 py2exe 编译时表现完全一样?
  2. 为什么错误说MediaObject的线程在0x44e2ed0,而它在0x03C1DF58?
4

0 回答 0