目前,我正在尝试使用Python检测何时按住了鼠标左键,然后开始快速发送此事件,而不是仅发送一次。我基本上想做的是,按住鼠标左键时,它会单击并再次单击,直到松开为止。但是我对整个Xlib感到有点困惑,我认为实际上这非常令人困惑。任何有关如何执行此操作的帮助都将非常棒。到目前为止,这就是我得到的:
#!/usr/bin/env python
import Xlib
import Xlib.display
def main():
display = Xlib.display.Display()
root = display.screen().root
while True:
event = root.display.next_event()
print event
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
但不幸的是,控制台中没有输出。在互联网上快速搜索后,我发现了以下内容:
root.change_attributes(event_mask=Xlib.X.KeyPressMask)
root.grab_key(keycode, Xlib.X.AnyModifier, 1, Xlib.X.GrabModeAsync,
Xlib.X.GrabModeAsync)
Run Code Online (Sandbox Code Playgroud)
这似乎是为了捕获具有给定键码的特殊事件而导入的。但是首先,如果有的话,鼠标左键有什么键码?其次,我如何才能检测到何时按下它,然后开始快速发送mouseclick事件。我将非常感谢您的帮助。(也许用热键停止此脚本的方法也很酷……)
嗨我想在我的应用程序中将图像或div元素附加到firefox中的光标,当鼠标悬停时,某些元素将比图像附加到光标上.
谢谢rahul
劳驾:
我只是不知道如何连接这些连续的操作?
按下鼠标然后拖动然后释放.如果用户不执行此操作,则不会执行某些操作...
我应该添加代码,因为已经按下来区分它吗?
常量MOUSE_MOVED不起作用,因为Eclipse告诉我它不知道它虽然我在鼠标事件api中找到参数
我不知道发生了什么......请帮忙!
我在使用我创建的"画布"类中遇到了一个问题,这是一个扩展的类JPanel,用于绘制动画环形图.此图表使用a MouseListener来获取点击事件.
问题是鼠标位置似乎不准确,这意味着它似乎不是相对于"画布"而是相对于窗口(在左上角,我得到约30px的y coord).
这是我的代码:
我创建了一个类,它扩展了JPanel并且有一个BufferedImage作为成员.
public class Canvas extends JPanel {
public BufferedImage buf;
private RingChart _parent;
public Canvas(int width, int height, RingChart parent){
buf = new BufferedImage(width, height, 1);
...
Run Code Online (Sandbox Code Playgroud)
在paint组件方法中,我只绘制缓冲图像,因此我可以通过在缓冲图像上绘制来从"外部"绘制画布,这是公共的.
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(buf, null, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
现在有一个类RingChart包含一个"画布":
public class RingChart extends JFrame{
public Canvas c;
...
Run Code Online (Sandbox Code Playgroud)
我从canvas类的bufferedImage创建了一个Graphics2D.这个g2d用于绘画:
public RingChart(){
c = new Canvas(1500,980,this);
add(c);
setSize(1500, 1000);
setTitle("Hans");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g2d = (Graphics2D)c.buf.createGraphics();
...
Run Code Online (Sandbox Code Playgroud)
我现在想要实现的是一个鼠标监听器,它监听画布上发生的鼠标事件.因此,当用户点击画布时,我可以通过事件变量检索他在画布上单击的位置.
所以我创建了一个鼠标监听器:
class …Run Code Online (Sandbox Code Playgroud) 当你将鼠标悬停在我身上时,我会有一个从黑色变为灰色的按钮,我这样做setRolloverIcon(ImageIcon);.当鼠标光标悬停在JButton上时,是否有任何简单的方法使布尔值等于true,或者我是否必须使用MouseMotionListener来检查鼠标光标的位置?
我正在编写一个用于绘画的Win32 OpenGL应用程序,其中处理所有鼠标移动至关重要.碰巧的是,有时候我的程序中的绘制操作无法实时执行 - 这对我来说很好,只要所有鼠标事件都排队并且可以稍后处理.现在我认为这只是调用PeekMessage确保处理所有事件的问题,但是当我这样做时,很明显我的应用程序接收的鼠标移动与Windows显示的那些保真度不同.
这是Windows的一个功能吗?当应用程序是劳动密集型时,是否会丢弃鼠标事件 或者我错过了什么?在任何一种情况下,我该怎么做才能解决这种情况?我想避免多线程,部分原因是,据我所知,Win32要求消息回调在主线程中,我不确定将OpenGL内容分离到不同的上下文.
至于代码示例,我实际上是在下面的链接中使用模板代码.我正在检查的消息是WM_MOUSEMOVE.
http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(win32)/13001/
这是鲍勃:

我已经知道如何让他旋转朝着老鼠地位得益于这样一个问题:https://stackoverflow.com/posts/26607930/edit
我把所有东西都搞定了,但是当按下一个键时仍然无法将他移向鼠标位置.
这是一个例子:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class ImageFollowingMouseTest
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
createAndShowGUI();
}
});
}
private static void createAndShowGUI()
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new ImageFollowingMousePanel());
f.setSize(400,400);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
class ImageFollowingMousePanel extends …Run Code Online (Sandbox Code Playgroud) 我正在尝试将事件侦听器添加到iframe对象内的mouseup中:
$("#myIFrame").contents().find("body").bind("mouseup", function() {
//e.preventDefault(); //doesn't make difference
alert('inside');
});
Run Code Online (Sandbox Code Playgroud)
这行不通。有任何想法吗?