C++ 为创建的jackWindow()上下文

C++ 为创建的jackWindow()上下文,c++,qt,windows-7,visual-c++-2010,C++,Qt,Windows 7,Visual C++ 2010,我正在使用VisualStudio2010和cl编译器为Windows7开发桌面Qt4.7.1应用程序。使用OpenGL小部件 不久前,在应用程序初始化期间,我开始接收如下消息: hijackWindow() context created for QWidget(0x1c8f070, name = "x1") 1 hijackWindow() context created for QGroupBox(0x1c8f5f8, name = "x2") 2 hijackWindow() con

我正在使用VisualStudio2010和cl编译器为Windows7开发桌面Qt4.7.1应用程序。使用OpenGL小部件

不久前,在应用程序初始化期间,我开始接收如下消息:

hijackWindow() context created for QWidget(0x1c8f070, name = "x1") 1 
hijackWindow() context created for QGroupBox(0x1c8f5f8, name = "x2") 2 
hijackWindow() context created for QGroupBox(0x19f70b0, name = "x3") 3 
hijackWindow() context created for QGroupBox(0x19f9d40, name = "x4") 4 
hijackWindow() context created for QGraphicsView(0x19fae28, name = "x5") 5 

产生这些信息的原因可能是什么?如何禁用窗口劫持,因为它会占用大量时间?

这只是Qt库在为小部件创建GL上下文时发出的调试消息。我认为,如果您使用Qt库的发行版(它们必须使用定义的
Qt\u NO\u DEBUG\u输出
Qt\u NO\u DEBUG
宏构建,这将禁用对
qDebug
)的调用,则不应出现此消息。

这只是Qt库在为小部件创建GL上下文时发出的调试消息。我认为,如果您使用Qt库的发行版(它们必须使用定义的
Qt\u NO\u DEBUG\u输出
Qt\u NO\u DEBUG
宏构建,这将禁用对
qDebug的调用),则不应出现此消息。

耗时的问题在于使用opengl图形系统而不是光栅图形系统。因此,解决方案是将以下参数添加到命令行:

-graphicssystem raster

或者使用此标志构建整个Qt。

耗时的问题在于使用opengl图形系统而不是光栅图形系统。因此,解决方案是将以下参数添加到命令行:

-graphicssystem raster

或者使用此标志构建整个Qt。

我刚刚尝试在版本配置和运行中构建应用程序和库-结果是一样的。@DairT'arg:嗯,我已经很久没有使用Qt了。。。这几天这些东西似乎都在发行。要摆脱它,您必须安装一个自定义消息处理程序。请看,我们在两台不同的计算机上拥有完全相同的Qt定制配置、相同的visualstudio、相同的操作系统和相同的源代码(这只是一个直接副本)。指定的“劫持问题”仅在其中一个上存在。所以我想知道是什么原因造成的?@DairT'arg:嗯,有些东西明显不同(qt项目配置?环境变量?)。计算机是非常确定的,没有魔法。不幸的是,我不知道没有调试的答案。我将获得您正在使用的Qt版本的源代码,以及grep的“为”行创建的“jackWindow()上下文”。在其中设置断点,并调试为什么在一台机器上调用断点而不是在另一台机器上调用断点。如果同时调用这两个函数,那么其中一个函数只会抑制调试消息,您可以进一步调试…我已经找到了原因。如果有兴趣,请参阅下面我的评论。我刚刚尝试在版本配置中构建应用程序和库,运行结果是一样的。@DairT'arg:嗯,我已经很久没有使用Qt了。。。这几天这些东西似乎都在发行。要摆脱它,您必须安装一个自定义消息处理程序。请看,我们在两台不同的计算机上拥有完全相同的Qt定制配置、相同的visualstudio、相同的操作系统和相同的源代码(这只是一个直接副本)。指定的“劫持问题”仅在其中一个上存在。所以我想知道是什么原因造成的?@DairT'arg:嗯,有些东西明显不同(qt项目配置?环境变量?)。计算机是非常确定的,没有魔法。不幸的是,我不知道没有调试的答案。我将获得您正在使用的Qt版本的源代码,以及grep的“为”行创建的“jackWindow()上下文”。在其中设置断点,并调试为什么在一台机器上调用断点而不是在另一台机器上调用断点。如果同时调用这两个函数,那么其中一个函数只会抑制调试消息,您可以进一步调试…我已经找到了原因。如果你感兴趣,请看我下面的评论。光栅子系统不是OpenGL,这是你问的。你的问题不是什么大问题,只是一个调试语句。但是,是的,不使用OpenGL可以避免这种情况:-DSuddenly OpenGL小部件即使使用光栅图形引擎=)光栅子系统不是OpenGL,这是您所问的。你的问题不是什么大问题,只是一个调试语句。但是,是的,不使用OpenGL可以避免这种情况:-DSuddenly OpenGL小部件即使使用光栅图形引擎也可以正常工作=)