毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> linux >> 正文

gtk_widget_hide(window)每次窗口总是等到callbacks函数返回后才消失

更新时间:2012-8-15:  来源:毕业论文

有一个button "clicked" 的信号 我想让按钮点击后窗口消失 同时执行其他的事情 
我把gtk_widget_hide(window)和“其他事情”都放在同一个callbacks函数中
但每次窗口总是等到“其他事情”执行完 或者说 callbacks函数返回后 才消失
何解?

这类问题,单凭你说的,没感觉到问题所在.
你可以直接调试看看什么原因.
 
的一部分程序是Glade自动生成的,所以有些乱。。。
int main()
{
...............
 GtkWidget *window1;
 window1 = create_window1 ();
 gtk_widget_show (window1);
 gtk_main ();
}

GtkWidget* create_window1 (void)
{
 .......
  g_signal_connect ((gpointer) button1, "clicked",
  G_CALLBACK (on_button1_clicked),
  NULL);
}

GtkWidget* create_window2 (void)
{
  ...........
}

void on_button1_clicked (GtkButton *button ,gpointer user_data)
{
  GtkWidget *window1;
  gtk_widget_hide(window1);  
  my_connect( XX ,XX); //这是我自己的函数 里面含有printf语句
  GtkWidget *window2;  
  window2=create_window2();
  gtk_widget_show(window2);
}

现在的情况就是 我点击按钮 window1并没有立刻消失 而是等到printf输出后才消失
window1我定义成全局变量也没有用
有没有办法使我一点击按钮 window1就消失 my_connect()函数继续执行 

还有一种方法我试了也不行
大概就是

int main()
{
...............
 GtkWidget *window1;
 window1 = create_window1 ();
 gtk_widget_show (window1);
 gtk_main ();
}

GtkWidget* create_window1 (void)
{
 .......
  g_signal_connect ((gpointer) button1, "clicked",
  G_CALLBACK (on_button1_clicked),
  NULL);
  g_signal_connect ((gpointer) window1, "hide",
  G_CALLBACK (window1_hide),

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©chuibin.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。