QT Creator fork()进程怎么弹出QMessageBox??

greatxingxing 2009-09-03 12:00:31

//我想做一个超时功能,
//首先我定义了一个全局变量
volatile int sec = 0;


//然后在开始按钮的click()事件上写上
if (fork() == 0)
{
for(sec = 0; sec < 60; sec++) //其他事件里有可能会改变sec的值
{
sleep(1);
}
QMessageBox::information(NULL,"warning","time out!");

//运行后,到了QMessageBox,QT自己退出了,没有弹出messagebox,请问如何弹出messagebox
//QT Creator的output窗口出如下信息
/********* 错误信息 ***********

Starting /home/ciya/socket/qt_server/qt_server...
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
Major opcode: 53 (X_CreatePixmap)
Resource id: 0x3a00056
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
Extension: 151 (RENDER)
Minor opcode: 4 (RenderCreatePicture)
Resource id: 0x3a00057
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
Major opcode: 53 (X_CreatePixmap)
Resource id: 0x3a00059
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
Extension: 151 (RENDER)
Minor opcode: 4 (RenderCreatePicture)
Resource id: 0x3a0005a
X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
Extension: 151 (RENDER)
Minor opcode: 4 (RenderCreatePicture)
Resource id: 0x3a0005d
qt_server: ../../src/xcb_io.c:182: process_responses: 断言 `((int) (((dpy->last_request_read)) - ((dpy->request))) <= 0)' 失败.
The program has unexpectedly finished.
**************************************************************************/

}

...全文
455 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
steptodream 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yhf365 的回复:]
用udp或者tcp最好不用fork,
不然会开两个同样的进程。
建议你用QThread,
在一个线程中监控就可以了
[/Quote]
yhf365 2009-09-04
  • 打赏
  • 举报
回复
用udp或者tcp最好不用fork,
不然会开两个同样的进程。
建议你用QThread,
在一个线程中监控就可以了
rzsheng 2009-09-03
  • 打赏
  • 举报
回复
不太理解为什么要这么做。
yhf365 2009-09-03
  • 打赏
  • 举报
回复
为什么用fork实现超时功能呢?
用QThread试下?
cceczjxy 2009-09-03
  • 打赏
  • 举报
回复
用定时器就可以啦,你fork的话,就是出现了两个例程在运行,你弹出的对话框也只是在子例程内,不对父例程产生影响的。
rzsheng 2009-09-03
  • 打赏
  • 举报
回复
用定时器不可以吗?
greatxingxing 2009-09-03
  • 打赏
  • 举报
回复
晕,我就是想1分钟内没收到数据(udp或者tcp),
就弹出messagebox说超时之类的.


  • 打赏
  • 举报
回复
用Qthread就是了。

我实在没理解,你这里需要用到多进程或者多线程的需求在那里??
pid_t pid;
if ( ( pid_t=fork() ) == 0)

一般是这样写的

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧