gtkmm下屏敝button的键盘事件

开发基于GTK+或QT的应用程序
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

gtkmm下屏敝button的键盘事件

#1

帖子 lerosua » 2009-01-19 10:52

ee提出的问题,一个窗口,里面一个按钮,想要按钮不接收任何键盘事件事件。

默认状态下button是接收entry和space两个键盘事件的。

我能想的办法只能是重载默认的接收信号的函数,让它不起效,从而起到屏弊键盘事件的作用。

在头文件里声明一个 信号函数

代码: 全选

bool mask_key(GdkEventKey* ev);
实现

代码: 全选

bool Buttons::mask_key(GdkEventKey* ev)
{
	printf("nothing \n");
	return true;
}
连接信号

代码: 全选

  m_button.signal_key_press_event().connect(sigc::mem_fun(*this,&Buttons::mask_key));
  
  m_button.set_events(Gdk::KEY_PRESS_MASK);
m_button就是那个按钮对象。
以上只是代码片断。相信ee能看明白。我只是随便找了个示例代码改了改,再上传一下,看看 就明白了。
附件
button.tar.gz
(28.01 KiB) 下载 73 次
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#2

帖子 lerosua » 2009-01-19 10:54

占自己沙发
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: gtkmm下屏敝button的键盘事件

#3

帖子 eexpress » 2009-01-19 11:23

有效啊。 :em05
● 鸣学
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#4

帖子 lerosua » 2009-01-19 11:37

主窗体重载 on_key_press_event(GdkEventKey* ev),
然后返回true,
就可屏敝所有的子控件的键盘事件了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: gtkmm下屏敝button的键盘事件

#5

帖子 eexpress » 2009-01-19 14:17

新方法:
gboolean on_window1_key_press_event(GdkEvent *ev)
把return false都改true。直接就可以了。

pW->signal_event().connect(sigc::ptr_fun(&on_window1_key_press_event));
● 鸣学
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#6

帖子 lerosua » 2009-01-19 14:32

ee总有太特殊的需求~ :em20
xihe
帖子: 28
注册时间: 2007-03-07 19:07
送出感谢: 0
接收感谢: 0

Re: gtkmm下屏敝button的键盘事件

#7

帖子 xihe » 2009-01-20 18:34

ee 用gtkmm 简直是糟蹋C++.
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#8

帖子 lerosua » 2009-01-20 19:02

xihe 写了:ee 用gtkmm 简直是糟蹋C++.
顶这句
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: gtkmm下屏敝button的键盘事件

#9

帖子 eexpress » 2009-01-20 20:40

确实,又来一个短名的马甲。呵呵。
我就糟蹋怎么样啊。本来就不喜欢++。
我的方向是C--。连库都不用的那种。不像你们喜欢挥霍的啊。
● 鸣学
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#10

帖子 lerosua » 2009-01-20 21:07

c++都叫挥霍,那用java,python, c#的人叫啥~
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: gtkmm下屏敝button的键盘事件

#11

帖子 eexpress » 2009-01-20 22:15

哎。我以前的编程,就算是C,都要看结果的汇编代码的啊。经常盘算怎样把一个语法写到最小代码开销的。

一个printf scanf 类的,从来不碰的,数据格式都自己转。

思路不同而已。




打倒更挥霍的 java python c sharp
● 鸣学
头像
anticlockwise
帖子: 2393
注册时间: 2007-03-01 20:46
来自: 湖南长沙
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#12

帖子 anticlockwise » 2009-01-20 23:20

eexpress 写了:哎。我以前的编程,就算是C,都要看结果的汇编代码的啊。经常盘算怎样把一个语法写到最小代码开销的。

一个printf scanf 类的,从来不碰的,数据格式都自己转。

思路不同而已。




打倒更挥霍的 java python c sharp
打倒ee~~
xihe
帖子: 28
注册时间: 2007-03-07 19:07
送出感谢: 0
接收感谢: 0

Re: gtkmm下屏敝button的键盘事件

#13

帖子 xihe » 2009-01-21 8:19

回EE:
我对你的评论源于 lerosua 在4楼的帖子,和你在5楼的评论。
同样一个功能, lerosua 用虚函数实现,你竟然用 信号.槽 调用。
你说哪个省资源。
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
送出感谢: 0
接收感谢: 0
联系:

Re: gtkmm下屏敝button的键盘事件

#14

帖子 lerosua » 2009-01-21 8:55

xihe 写了:回EE:
我对你的评论源于 lerosua 在4楼的帖子,和你在5楼的评论。
同样一个功能, lerosua 用虚函数实现,你竟然用 信号.槽 调用。
你说哪个省资源。
难得 xihe出来点评~ 要支持
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: gtkmm下屏敝button的键盘事件

#15

帖子 eexpress » 2009-01-21 22:20

不就是挥霍吗。用高级高级语言的家伙,没见几个关心最佳方法的,都是只关心结果的。何况我不是使用高级高级语言的。
另外,我用全局变量的,估计你们也不用。想想一个全局变量带来的节约有多少吧。50%的代码吧。
● 鸣学
回复

回到 “GTK+和QT”