使用以下最少的代码,我用鼠标或wacom数位板进行相同的操作: “在红色矩形上单击左键,在不释放的情况下移动到蓝色矩形,然后单击中间(不释放左键),然后释放左键”
使用“我的鼠标”,我得到以下结果(逻辑,我想要!):
使用Wacom数位板,我得到了这个结果(不好!我要和鼠标一样!)
看来Qt(版本4.8)不太像它,但它并不能成为平板电脑的主角。你知道为什么吗 ?并提出一些避免该问题的建议(我不希望在小部件中手动调用grabMouse,因为在我的实际应用中,我拥有更多的小部件,而Qt则说,我们自己调用grabMouse不是一个好主意(当我看到我这样做时产生的错误))
from PySide.QtGui import *
from PySide.QtCore import *
app = QApplication()
class SecondaryWidget(QLabel):
def __init__(self, name, color, parent=None, flags=0):
super(SecondaryWidget, self).__init__(name, parent)
self.setObjectName(name)
self.setStyleSheet('background-color:' + color + ';')
def mousePressEvent(self, event):
super(SecondaryWidget, self).mousePressEvent(event)
print ("Press", self.objectName())
def mouseReleaseEvent(self, event):
super(SecondaryWidget, self).mouseReleaseEvent(event)
print ("Release", self.objectName())
class MainWidget(QWidget):
def __init__(self):
super(MainWidget, self).__init__()
self.setFixedSize(500, 500)
layout = QVBoxLayout()
a = SecondaryWidget('red', 'red')
layout.addWidget(a)
b = SecondaryWidget('blue', 'blue')
layout.addWidget(b)
self.setLayout(layout)
w = MainWidget()
w.show()
app.exec_()