Python Forum
Thread Rating:
  • 2 Vote(s) - 2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt5 events
#1
Please can someone help me, I want to trigger the handleEvents function? 

import sys
import types
from types import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

import PyQt5.QtCore as core
import PyQt5.QtGui as gui
import PyQt5.QtWidgets as widgets
import PyQt5.uic as uic




import mainwindow_auto

class MainWindow(QMainWindow, mainwindow_auto.Ui_MainWindow):
   def __init__(self):
       super(self.__class__, self).__init__()
       self.setupUi(self)
       self.setGeometry(150, 150, 1280, 600)
       self.setWindowFlags(Qt.FramelessWindowHint)

       self.img = gui.QImage("test.png")
       self.painter = gui.QPainter()
       self.transformHistory = gui.QTransform()
       self.transformTotal = gui.QTransform()
       self.startPoint = core.QPoint()
       self.widget = QWidget()

       self.widget.grabGesture(core.Qt.PinchGesture)
       self.widget.grabGesture(core.Qt.TapGesture)
       # self.widget.event = types.MethodType(self.handleEvents, self.widget)


   def handleEvents(self, event):
       print("v")
       global transformHistory, transformTotal, startPoint
       if event.type() == core.QEvent.Gesture:
           print("dddd")
           g = event.gesture(core.Qt.PinchGesture)
           if g != None:
               upperLeft = self.mapToGlobal(core.QPoint())
               scale = g.totalScaleFactor()
               centerPoint = g.centerPoint() - upperLeft
               if g.state() == core.Qt.GestureStarted:
                   startPoint = g.centerPoint() - upperLeft
               transformTotal = transformHistory * gui.QTransform().scale(scale, scale)
               if g.state() == core.Qt.GestureFinished:
                   transformHistory = transformTotal
               self.update()
           else:
               g = event.gesture(core.Qt.TapGesture)
               if g.state() == core.Qt.GestureFinished:
                   print("tap ", g.position())
                   transformTotal = gui.QTransform()
                   transformHistory = gui.QTransform()
                   self.update()
       elif event.type() == core.QEvent.Paint:
           painter = QPainter()
           painter.begin(self)
           painter.setTransform(transformTotal)
           painter.drawImage(0, 0, self.img)
           painter.end()
       return True


   def keyPressEvent(self, e):
       print("b")
       if e.key() == Qt.Key_Escape:
           self.close()



if __name__ == '__main__':
   global form
   app = widgets.QApplication(sys.argv)
   form = MainWindow()
   print("a")
   form.show()
   sys.exit(app.exec_())
Reply
#2
In the future, please use code tags - I added them for you this time.

Take a look at: https://wiki.python.org/moin/PyQt/Bindin...0variables
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [PyQt] Wonky Touch Events hessej 2 2,248 Nov-07-2019, 07:52 PM
Last Post: kozaizsvemira
  Huge code problems (buttons(PyQt5),PyQt5 Threads, Windows etc) ZenWoR 0 2,785 Apr-06-2019, 11:15 PM
Last Post: ZenWoR
  [PyQt] touch events is not generating shridhara 0 3,311 Apr-23-2018, 11:39 AM
Last Post: shridhara
  [Tkinter] problem with button events Lubik_ 4 9,730 Dec-01-2017, 08:47 PM
Last Post: Windspar
  PyQt4 Touch events alekssandrap 2 7,098 Jan-28-2017, 01:05 PM
Last Post: alekssandrap

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020