GTK中怎么让一个窗口获取全局焦点?

场景:

登录失效后,弹出窗口重新登录这类情况下,可能系统全局焦点不在当前应用程序的窗口,想让当前登录窗口弹出后可以直接输入。

目的:

  • 想让窗口show()hide()show()之后,再次获取到全局焦点。

分析:

  • 第一次show()的时候,无论在其他什么程序中,系统全局焦点都会被创建的这个窗体捕获到,应该有一种方法,捕获全局焦点。

尝试过:

  • set_keep_above(),只是显示在顶层,相当于窗口置顶,但是没有获取到焦点;
  • grab_focus(),只是在当前窗口中获取到焦点,而当前窗口没有获取到全局焦点;
  • activate(),好像只发出一个信号,但是不产生其他,也就是既没有获取焦点,也没有置顶。

感谢。

阅读 8.4k
1 个回答
gtk_widget_grab_focus(GtkWidget *);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题