Articles of 事件

如何禁用Qt在捕获窗口小部件焦点导航的箭头键的Linux上的行为

我正在开发一个主要在MacOS上开发的Qt应用程序,但是这个应用程序也是在Linux上构build和testing的。 我们在主窗口类中定义一个keyPressEvent()方法来响应某些键盘事件。 其中,我们响应Qt :: Key_Left,Qt :: Key_Right和Qt :: Key_Space。 这在MacOS上很好用。 然而,在Linux上,我们从来没有得到这些事件。 做一些谷歌search(并确认它与我们的应用程序在Linux上的行为),似乎这样做的原因是Qt使用这些键在应用程序的GUI中button窗口小部件的键盘导航。 如果我按下Linux上的箭头键,我将遍历所有活动的button小部件,依次select每个小部件。 如果我单击空格键,则按下当前选定的button。 到目前为止,Googlesearch所能find的所有build议都是关于如何将滤镜子类化或应用到特定button,以避免这种行为,方法是让button忽略事件并将其传递。 但是我不想为每个我放入GUI的button部件做这件事。 这只是跛脚。 有没有办法全局禁用这种行为,并允许我的应用程序代码实际上得到所有的箭头键和空格键事件?

epoll_wait:maxevents

int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout); 我对maxevents参数有点困惑。 假设我想写一个可以处理高达10k连接的服务器。 我将maxevents定义为10000,还是应该由于某种原因而降低?

无法从/ dev / input / event获取鼠标移动事件*

使用evtest工具testinginput事件时,我无法获得鼠标移动事件。 我只得到三个鼠标事件: left click event: type = EV_KEY, code = 272 (LeftBtn), value=1/0 right click event: type = EV_KEY, code = 273 (RightBtn), value = 1/0 mouse wheel event: type = EV_REL, code = 8 (Wheel), value = -1 没有鼠标移动事件 。 那么,我的鼠标移动事件,以及如何捕捉它? ps:在安装了virtualbox-addition的Ubuntu 11.04和Gentoo的VirtualBox-4上进行testing。

单声道高分辨率定时器(在Linux上)

我将移植到Linux(使用Mono)的50ms(对于串行通信)轮询的Windows C#应用程序。 我们目前正在使用ZylTimer(通过ZylSoft)在每个间隔产生“tick”事件,但是当这个库将pInvoke调用包装到windows多媒体库时,我们当然不能使用它。 //ie timZylComms.Tick += new ZylTimer.TickEventHandler(timZylComms_Tick); timTimeout.Tick += new ZylTimer.TickEventHandler(timTimeout_Tick); 所以,这导致我问,如果有任何我可以在单声道下使用的替代品? 最好的方法是用Tick事件扩展“秒表”类(以高分辨率计数)吗? 还是有任何Linux库我可以包装重现此function? 或者还有其他的方式来实现这一点? 欣赏任何想法。 编辑:这会有任何问题: internal class LinuxHiResTimer{ internal event EventHandler Tick; private System.Diagnostics.Stopwatch watch; internal int Interval{ get; set;} private bool enabled; internal bool Enabled { get{ return enabled; } set { if (value) { watch.Start (); Task.Run (tickGenerator); enabled = […]

拦截X11上的WM_DELETE_WINDOW?

我想拦截WM_DELETE_WINDOW消息,该消息发布到我正在编写的应用程序( AllTray )的特定窗口中,以便我可以对其执行操作,而不是接收应用程序。 如果可能的话,我现在正在通过gdk_display_add_client_message_filter在GDK级别尝试此操作,但是如果有Xlib解决scheme,我也会很高兴。 这似乎是可能的,但我似乎并没有理解我如何成功地做到这一点。 目前,我有两个程序(用C语言编写),我试图用它来解决这个问题, 第一个程序只是创build一个窗口并注册,它知道WM_DELETE_WINDOW , 第二个程序试图捕获这个消息,但似乎失败了; 它似乎没有做任何事情。 我是否理解了这个错误的文档,或者是否还有其他需要做的事情(或者我需要完全避免使用GDK)? 背景是这样的:在我重写AllTray之前,它会做的事情似乎是试图拦截一个鼠标点击Xbutton本身。 对于一些窗口pipe理器来说,这个工作正常,对于其他人来说根本不起作用,对于其他人来说,用户必须手动configuration它,并指示AllTrayclosures窗口的button。 我正在寻找的是不涉及LD_LIBRARY_PRELOAD的解决scheme,它将适用于任何符合当前标准的窗口pipe理器/应用程序组合,并在窗口closures时发送WM_DELETE_WINDOW ClientMessage。 更新 :我仍然在寻找答案。 我现在采取的路线是试图重新开窗并自己pipe理,但是我不能使它工作。 重新装修后,我似乎无法以任何方式恢复原状。 我可能会错过一些非常基本的东西,但是我不知道如何让它再次出现在我自己的窗口中,然后把它带回到屏幕上。 更新2 :好的,所以我打了另一堵砖墙。 X服务器文档说在窗口的事件掩码上设置StructureNotifyMask以接收MapNotify和ReparentNotify事件。 我有兴趣收到。 我目前的想法是创build一个窗口,作为一个事件接收器,然后当我得到有趣的事件的事件,通过创build和reparent行事。 但是,这似乎并没有工作。 我实际收到的唯一事件是PropertyNotify事件。 所以,这条路线似乎也不怎么样。

perf事件文档

我已经search了由perf stat命令监视的每个事件的含义的详尽解释; 我find了一个教程 ,很好地解释了如何使用perf工具的不同function。 但是,这并不能解释可以观察到的几个事件的意义(而且有很多!!)。 有人知道哪里是一个相当简单和完整的文件有关perf列表命令列出的事件? 特别是,我有兴趣找出我写的一些应用程序使用的CPU的百分比。 我可以直接通过cpu时钟或任务时钟来测量它吗? 这两个事件的意义是什么? 提前致谢

如何实现javafx鼠标事件“按住”?

我正在开发一个javafx项目,我需要一些类似的触摸事件推动和保持,但我需要它作为一个鼠标事件,因为我在接触Linux和javafx的麻烦,我已经尝试了触摸事件,但Ubuntu不会回应触摸事件。 那么关于如何实现事件或者如何激活Linux上的javafx触摸事件的任何想法?

如何在bash中获取MouseMove和MouseClick?

我想知道如何在bash脚本中为我自己的简单操作系统事件获取MouseClick和MouseMove事件。 请告诉我如何获得这些事件。

C#Windows服务事件

所以我只是在这里搞乱了我的第一个Windows服务的概念certificate。 我试图本质上创build一个窗口服务,作为信号连接的监听器。 实质上,我将有一个Windows应用程序和一个Windows服务。 胜利服务将处理连接到信号中心和信号员电话发射事件。 Windows应用程序将侦听这些事件并根据它们执行操作。 目前我无法得到这个工作。 我从来没有使用事件,或以前的Windows服务。 在我的Windows应用程序,我的事件从来没有打到他们的断点,以及我从日志logging空引用exception的错误 ConnectToHub() 好的,如果我注释掉OnConnected()方法调用我logging一个成功的连接到集线器。 我从来没有和事件合作过,所以我的错误与事件? 我辩论这种方法有点矫枉过正。 然而,对我来说,这是一个概念certificate,我可以find长期运行的Windows服务的用途,并添加一些事件的混合。 服务代码: public delegate void MessageRecievedEventHanlder(object sender, MessageRecievedArgs e); public delegate void ConnectedToHubEventHandler(object sender, ConnectedArgs e); public partial class SignalRService : ServiceBase { IHubProxy _hub; HubConnection connection; string url = @"http://localhost:8080/"; private Message LastMessage; public static event MessageRecievedEventHanlder NewMessage; protected virtual void OnNewMessage(MessageRecievedArgs […]

在C#中检测系统醒来的事件

我需要检测系统电源状态模式。 确切地说,我需要一个当Windows 7从睡梦中醒来的事件。 我已经在使用: SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; 但是这个事件的问题在于它被升起了四次:可能是当电脑进入睡眠模式并且电脑被唤醒后。 我只想要一个电脑唤醒的事件。 有没有这个事件?