Qt4 QProgressBar错误

Qt4 QProgressBar错误,qt4,Qt4,我试图在代码中添加QProgressBar,但遇到了一些问题。我通过Designer添加了进度条,在代码中,我将指向QprogressBar对象的指针传递给一个单独的线程,让它在处理数据时更新QprogressBar,但是,我收到以下消息: ../../src/xcb_lock.c:77:XGetXCBBuffer:Assertion`((int)((xcb_req)-(dpy->request))>=0)失败。 我正在Ubuntu 8.10(2.6.27-11)上运行Qt-4.5.0。 我还尝

我试图在代码中添加QProgressBar,但遇到了一些问题。我通过Designer添加了进度条,在代码中,我将指向QprogressBar对象的指针传递给一个单独的线程,让它在处理数据时更新QprogressBar,但是,我收到以下消息: ../../src/xcb_lock.c:77:XGetXCBBuffer:Assertion`((int)((xcb_req)-(dpy->request))>=0)失败。 我正在Ubuntu 8.10(2.6.27-11)上运行Qt-4.5.0。 我还尝试了RHEL5(2.6.18)中的Qt-4.3.5,但我得到了不同的错误,一些神秘的错误,比如带有QPaint错误的X错误。 当我从我的主应用程序执行循环更新进度条时,似乎一切正常

请帮忙
Nimesh

类及其所有子类,包括
QProgressBar
,都是不可重入的,不能在主线程之外使用。请参阅以下文档:

出现错误是因为您试图从主线程外部更新
QProgressBar

更新进度条的首选方法是,使与数据处理线程关联的对象在进程中定期发出信号,然后将此信号连接到
QProgressBar
中的
setValue(int)
插槽。Qt将确保信号插槽连接是线程安全的。请参阅有关跨螺纹连接信号和插槽的文档:


希望这有帮助。

QWidget类及其所有子类,包括
QProgressBar
,都是不可重入的,不能在主线程之外使用。请参阅以下文档:

出现错误是因为您试图从主线程外部更新
QProgressBar

更新进度条的首选方法是,使与数据处理线程关联的对象在进程中定期发出信号,然后将此信号连接到
QProgressBar
中的
setValue(int)
插槽。Qt将确保信号插槽连接是线程安全的。请参阅有关跨螺纹连接信号和插槽的文档:

希望这有帮助