Найти - Пользователи
Полная версия: Как определить нажатие кнопок мышки.
Начало » GUI » Как определить нажатие кнопок мышки.
1 2
GizGizmo
В программе требуется определить нажата ли в данный момент левая кнопка мыши, и если да то начать сохранять координаты курсора, до момента отпускания. Как это можно реализовать, в win32api не могу не чего найти(
hellslade
http://python.su/forum/viewtopic.php?pid=39241#p39241 тут ловятся действия мыши и клавиатуры. Думаю, разберешься
GizGizmo
hellslade
http://python.su/forum/viewtopic.php?pid=39241#p39241 тут ловятся действия мыши и клавиатуры. Думаю, разберешься
К сожалению, я не смог разобраться так как опыта практически нет( Уже четвертые сутки пытаюсь, решил обратится за помощью.

Нашел программку которая выводит координаты мышки http://python.su/translate/wxpython-in-action/4/
Если кому не сложно покажите как можно реализовать запись координат мышки, когда зажата левая кнопка мыши.
UsCr
А такого рода конструкции не работают?
def coord_save(event):
...

widget.bind("<Button-1>", coord_save)
Тут ещё посмотрите: http://www.intuit.ru/department/pl/python/12/2.html
В примере обратите внимание на то, как получить координаты x_root, y_root, x, y Это именно то, что вам нужно.
UsCr
Да, действительно не работает. А вот если по событию <Button-1> вызвать прозачное окошко и на нём по событию <Motion> вызывать coord_save, а по <ButtonRelease> закрыть то самое прозрачное окошко, должно получиться.
Это всё я говорю про Tkinter.
GizGizmo
def OnMove(self, event):

pos = event.GetPosition()

self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
Я не могу понять для чего нужны self и event. В книжках находил, но там как то все запутанно.
Ferroman
self - указатель на самого себя внутри объекта (точнее даже экземпляра класса). Нужен для явного указания чьи свойства и методы используются. Понятие общее для питона вообще.

event - тут видимо условное место привязки “события”. т.е. event - событие (движение мышкой) и у этого события есть метод получения текущей координаты. Более точно можно сказать изучая документацию.
GizGizmo
Ferroman
self - указатель на самого себя внутри объекта (точнее даже экземпляра класса). Нужен для явного указания чьи свойства и методы используются. Понятие общее для питона вообще.

event - тут видимо условное место привязки “события”. т.е. event - событие (движение мышкой) и у этого события есть метод получения текущей координаты. Более точно можно сказать изучая документацию.
Спасибо, буду разбираться.

#!/bin/env python

import wx
import win32api

class MyFrame(wx.Frame):

def __init__(self):
wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300))
panel = wx.Panel(self, -1)
panel.Bind(wx.EVT_MOTION, self.OnMove)
wx.StaticText(panel, -1, "Pos:", pos=(10, 12))
self.posCtrl = wx.TextCtrl(panel, -1, "", pos=(40, 10))

def OnMove(self, event):
pos = event.GetPosition()
self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))

a = win32api.GetSystemTime() #узнаем время
b = a[7]+a[6]*1000+a[5]*60000 # перевожу время в миллисекунды, потом после сохранения вычту
# первое значение.
# Тут надо вставить проверку нажата ли левая кнопка мыши, и если да
# то в c[3]=1 если нет то с [3]=0
c=(pos.x, pos.y, b)
print (c)

if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show(True)
app.MainLoop()
К списку c не могу добавить значение левой кнопки мыши. Пытался self.bind(“<Button-1>”, die) но где то ошибаюсь.
igor.kaist
Вы говорили про Tkinter а показываете код с использованием библиотеки wx
UsCr
igor.kaist
Вы говорили про Tkinter а показываете код с использованием библиотеки wx
Это я говорил про Tkinter, а GizGizmo библиотеку не уточнял.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB