我可以在Qt的任何地方打开窗户吗?

时间:2015-01-31 13:49:42

标签: c++ qt

我有以下情况我想显示一些小部件。

我的主窗口主要是文本编辑器 我有一个名为' Run'的动作,它解释文本并执行某些操作 其中一个可能的结果是需要打开一个窗口。 它可以工作,但窗口仅在run函数(我有一个插槽)返回后显示。

我必须打开一个窗口的另一种情况是我想要从同一个解释器中运行来自控制台输入。 但在这种情况下打开窗口会导致错误,如:

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

(Parent is Oxygen::WidgetStateEngine(0xee2d90), parent's thread is QThread(0xda53b0), current thread is QThread(0x7f2178004000)

QObject::installEventFilter(): Cannot filter events for objects in a different thread.

我能做些什么来集中和#39;窗口操作,这样就不会发生?

1 个答案:

答案 0 :(得分:0)

将在主线程中创建所有GUI对象。您可以使用静态方法QApplication::topLevelWidgets()

从代码中的任何位置访问QMainWindow实例