2015-05-31 81 views
0

在這種情況下,您需要幫助移動對象,qgraphicpixmapitem使用鍵盤來拋出一個場景。這是我的代碼,我需要添加什麼方法來處理移動事件?如何使用鍵盤移動QGraphicsItem?

感謝

class Object(QtGui.QGraphicsPixmapItem): 
    def __init__(self, parent=None): 
     QtGui.QGraphicsPixmapItem.__init__(self, parent) 
     self.setFlag(self.ItemIsFocusable, True) 


    def keyPressEvent(self, e): 
     if e.key() == QtCore.Qt.Key_Right: 
      print('right') 
     elif e.key() == QtCore.Qt.Key_Left: 
      print('left') 
     elif e.key() == QtCore.Qt.Key_Down: 
      print('down') 
     elif e.key() == QtCore.Qt.Key_Up: 
      print('up') 

    def keyReleaseEvent(self, e): 
     pass 


class Scene(QtGui.QGraphicsScene): 
     def __init__(self, parent=None): 
      QtGui.QGraphicsScene.__init__(self, parent) 

回答

0

修改QGraphicsPixmapItem的上keyPressEvent位置。

self.setPos(self.x()+my_x_offset, self.y()+my_y_offset) 

與你選擇的適當數量(例如用於左按鍵,你可能會讓my_x_offset=10my_y_offset=0

取代 my_x_offsetmy_y_offset
相關問題