【发布时间】:2012-09-04 14:57:22
【问题描述】:
我正在尝试了解 PyQt4 中的事件处理,但偶然发现了一个案例
keyPressEvent 在我更改类定义后看到除了箭头键之外的所有键。
从看到所有键:
class MaskWindow(QtGui.QGraphicsView):
def __init__(self):
QtGui.QGraphicsView.__init__(self)
self.deskTop = QtGui.QDesktopWidget()
self.scene = QtGui.QGraphicsScene(self)
看不到箭头键、向下翻页和向上翻页,但其他人可以使用,例如制表符,Shift,a-z:
class MaskWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint|
QtCore.Qt.FramelessWindowHint)
self.deskTop = QtGui.QDesktopWidget()
self.view = QtGui.QGraphicsView(self)
self.scene = QtGui.QGraphicsScene(self)
这是箭头键不再捕获的键处理程序:
def keyPressEvent(self, event):
key = event.key()
if key == QtCore.Qt.UpArrow
self.diameter += 1
if key == QtCore.Qt.DownArrow:
self.diameter -= 1
换班时我错过了什么?
【问题讨论】:
-
这几乎可以肯定是因为您传递给构造函数的窗口标志。你在哪个平台上?
-
这是在 Windows 7 上。我选择了 QMainWindow,这样我就可以将窗口设置为顶部并失去边框。有没有办法用 QGraphicsView 对象来代替?
-
请忽略我之前的评论,看我下面的回答。
标签: python event-handling pyqt4