我一直在使用Qt现在开发了一段时间我的项目,我们开始转向更加面向线程设计。 在移动一些GL渲染小工具,其他线程我已经发现了一些很怪异的行为。 看来,如果一个GL窗口小部件开始从另一个线程的控件之前(升压螺纹或QThread的)接受用户输入(如一个QTextEdit)更新抓住重点,我得到的是看起来像XCB崩溃:
[xcb] Too much data requested from _XRead
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
hypnotizer: ../../src/xcb_io.c:735: _XRead: Assertion ‘!xcb_xlib_too_much_data_requested’ failed.
为了验证这一点,我其实可以做一个简单的修改到GLHypnotizer演示,重现崩溃。 该演示可以在这里找到: http://qt-project.org/doc/qt-4.8/demos-glhypnotizer.html [qt-project.org]
如果我添加行“mdiArea.addSubWindow(新的QTextEdit(本));” 在大约313线(调用newThread()之前),然后演示开始时会有一个QTextEdit和GL Hypnotizer的Widget。 如果我再点击的QTextEdit抢焦点我每次都会得到上面的崩溃。
任何人都可以重现上有Linux的错误安装使用上述说明? 有没有人遇到这些类型的问题上使用Qt和前线程的Linux?
注:我使用Ubuntu 12这种崩溃发生在VirtualBox和非VirtualBox的Ubuntu的安装