Multithreading 如何从辅助线程打开对话框?

Multithreading 如何从辅助线程打开对话框?,multithreading,pyside,Multithreading,Pyside,我有一个PySide应用程序,它在后台执行任务QThread。有时在任务的中间有一个步骤需要用户通过对话框输入。我无法从工作线程调用代码QtGui.QinputDialog.getText 我有这样的想法: class Communicate(QtCore.QObject): signal = QtCore.Signal((str, str)) def ask_user(title, text): return QtGui.QInputDialog.getText(None, ti

我有一个PySide应用程序,它在后台执行任务
QThread
。有时在任务的中间有一个步骤需要用户通过对话框输入。我无法从工作线程调用代码
QtGui.QinputDialog.getText

我有这样的想法:

class Communicate(QtCore.QObject):
   signal = QtCore.Signal((str, str))

def ask_user(title, text):
   return QtGui.QInputDialog.getText(None, title, text)
(然后在实际工作的函数中)

我知道这段代码甚至不看用户给出的值,但我只是想得到一些至少可以显示对话框的东西

以下是我得到的错误:

[xcb] Extra reply data still left in queue
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
python: xcb_io.c:575: _XReply: Assertion `!xcb_xlib_extra_reply_data_left' failed.
Aborted

我想同样的答案也适用于这里。
[xcb] Extra reply data still left in queue
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
python: xcb_io.c:575: _XReply: Assertion `!xcb_xlib_extra_reply_data_left' failed.
Aborted