免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4200 | 回复: 2
打印 上一主题 下一主题

请教:一个进程后台执行(无界面),想使用这个进程弹出一些窗口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-07 09:10 |只看该作者 |倒序浏览
使用gtk完成弹窗,多线程,但是总是提示有问题,附上源码,请教啦~
  1. void thread_welcome(void)
  2. {
  3.         show_welcome();
  4.         pthread_exit(0);
  5. }

  6. void thread_warning(void)
  7. {
  8.         show_warning();
  9.         pthread_exit(0);
  10. }
  11. int main()
  12. {
  13.         int i = 0;
  14.         int ret[2];
  15.         pthread_t id[2];

  16.         while(1){
  17.                 sleep(2);
  18.                 if(i%2==1) {
  19.                         ret[0] = pthread_create(&id,NULL,(void *) thread_welcome,NULL);
  20.                         if(ret[0]!=0){
  21.                                 printf ("Create pthread error!\n");
  22.                                 exit (1);
  23.                         }
  24.                 } else {

  25.                         ret[1] = pthread_create(&id,NULL,(void *)thread_warning,NULL);
  26.                         if(ret[1]!=0){
  27.                                 printf ("Create pthread error!\n");
  28.                                 exit (1);
  29.                         }
  30.                 }

  31.                 i++;
  32.         }
  33.         return 0;

  34. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-06-07 09:12 |只看该作者
  1. void show_warning()
  2. {
  3.     GtkWidget *dialog;//声明一个对话框

  4.     get_day(day);
  5.     sprintf(info,"infomation_warning");
  6.     gtk_init(NULL, NULL);//初始化GTK
  7.     //使用gtk_message_dialog_new()函数新建一个消息对话框
  8.     dialog = gtk_message_dialog_new(NULL,                //没有父窗口
  9.              GTK_DIALOG_DESTROY_WITH_PARENT,             //跟随父窗口关闭
  10.              GTK_MESSAGE_ERROR,                        //显示警告图标
  11.              GTK_BUTTONS_OK,                             //显示OK按钮
  12.              info);


  13.     gtk_window_set_title(GTK_WINDOW(dialog), "提示");//对话框的标题
  14. //    gtk_window_position(GTK_WINDOW(dialog),GTK_WIN_POS_MOUSE);
  15.     gtk_dialog_run(GTK_DIALOG(dialog));//运行对话框
  16.     gtk_widget_destroy(dialog);//删除对话框
  17. }

  18. void show_welcome()
  19. {

  20.     GtkWidget *dialog;//声明一个对话框


  21.     get_sn(sn);
  22.     sprintf(info,"information_welcome");
  23.     gtk_init(NULL, NULL);//初始化GTK
  24.     //使用gtk_message_dialog_new()函数新建一个消息对话框
  25.     dialog = gtk_message_dialog_new(NULL,                //没有父窗口
  26.              GTK_DIALOG_DESTROY_WITH_PARENT,             //跟随父窗口关闭
  27.              GTK_MESSAGE_INFO,                        //显示警告图标
  28.              GTK_BUTTONS_OK,                             //显示OK按钮
  29.              info);


  30.     gtk_window_set_title(GTK_WINDOW(dialog), "提示");//对话框的标题
  31.     gtk_dialog_run(GTK_DIALOG(dialog));//运行对话框
  32.     gtk_widget_destroy(dialog);//删除对话框

  33. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-06-07 09:43 |只看该作者
问题问的有点外行,呵呵,gtk多线程应该用g_thread_init(),gdk_thread_init()等接口,而不是pthread,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP