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


场景:


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

目的:

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

分析:

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

尝试过:

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

感谢。

GUI ui C++ gtk Linux

jayako醬 11 years, 9 months ago

Your Answer