当前位置: 技术问答>linux和unix
高分求教,如何激活不在操作焦点的窗口,也就是移动焦点到我的程序。
来源: 互联网 发布时间:2015-07-21
本文导语: 比如,windows下使用快捷键弹出某个程序的窗口,而这个窗口不是当前的操作焦点。 我想,在我的程序里面实现这个功能。 | 这个跟窗口管理系统相关吧! | 什么意思? 是不...
比如,windows下使用快捷键弹出某个程序的窗口,而这个窗口不是当前的操作焦点。
我想,在我的程序里面实现这个功能。
我想,在我的程序里面实现这个功能。
|
这个跟窗口管理系统相关吧!
|
什么意思? 是不是想弄个快捷键什么的,然后在此消息中激活窗口?
如果是的话,就不是很复杂了,随便找个自定义消息的例子改改就成
如果是的话,就不是很复杂了,随便找个自定义消息的例子改改就成
|
to earthwind(蓝浪) :可以通过快捷键打开窗口
你用的是什么窗口管理器?直接修改窗口管理器的配置文件,例如metacity的metacity.schemas.in 就可以做到
你用的是什么窗口管理器?直接修改窗口管理器的配置文件,例如metacity的metacity.schemas.in 就可以做到
|
还有一个办法就是重新写你要为之定义加速间的widget的key_press_event理论上也行得通!
|
用快捷键打开窗口很好处理,直接修改窗口管理器的schemas文件就可以了
但是一般窗口管理器都回将最近激活的窗口作为焦点窗口,如果你要强制
最近激活的窗口不是焦点窗口的话,恐怕要修改窗口管理器的focus_in行为
但是一般窗口管理器都回将最近激活的窗口作为焦点窗口,如果你要强制
最近激活的窗口不是焦点窗口的话,恐怕要修改窗口管理器的focus_in行为
|
void gtk_widget_install_accelerator( GtkWidget *widget,
GtkAcceleratorTable *table,
gchar *signal_name,
gchar key,
guint8 modifiers );
void gtk_widget_remove_accelerator ( GtkWidget *widget,
GtkAcceleratorTable *table,
gchar *signal_name);
这两个函数应该是给某个widget定义快捷键的,你自己研究一下吧!
GtkAcceleratorTable *table,
gchar *signal_name,
gchar key,
guint8 modifiers );
void gtk_widget_remove_accelerator ( GtkWidget *widget,
GtkAcceleratorTable *table,
gchar *signal_name);
这两个函数应该是给某个widget定义快捷键的,你自己研究一下吧!