bir alt sınıfında bu uygulamak istiyorsanız, mousePressEvent
fare tıklaması sorumludur. wheelEvent
, tekerlek düğmesine tıklamayacak. QT'nin API'sinin, fare olaylarının işlenmesi söz konusu olduğunda nasıl tasarlandığı budur.
Hangi fare düğmesine basıldığını (sağa, sola veya sola) ayırmak için button
property of QMouseEvent
'u kullanın.
Bu kod
void GLWidget::mousePressEvent(QMouseEvent *event) // redefine the mouse event
{
switch(event->button()) {
case Qt::LeftButton:
// do stuff for left button pressed
break;
case Qt::MiddleButton:
// do stuff for wheel button pressed
break;
// ...
}
}
Yani, PySide için, sadece mousePressEvent
içinde event
arasında button
özelliğini karşılaştırmak gerekir (Ben pyside
çevirmek kolaydır hayal) C++ gibi görünecektir nasıl ve Qt.LeftButton
, Qt.RightButton
veya Qt.MidButton
olup olmadığına bakın. Umarım yardımcı olur.
Tekerlek muhtemelen orta düğme tıklaması olarak yorumlanır? –
@FrankOsterfeld Tekerlek, kaydırma değil orta düğme tıklaması olarak yorumlanır. Tekerlek orta düğmesi için bir olay işleme fonksiyonu yazdığımda, wheelEvent uygulamasında fare tıklaması, ortadaki buton tıklama etkinliğini – Johnnylin
@Johnnylin alır. Tam olarak nasıl çalışması gerekiyordu. Bir fare tekerleği hem **, hem de ** üzerine kaydırma yapmak için kullanılabilir. Çoğu modern farede üç tıklama düğmesi bulunur ve çoğunun beşi vardır. [QMouseEvent] 'in (http://doc.qt.io/qt-4.8/qmouseevent.html) 'button()' ve/veya 'buttons()' yöntemlerini inceleyerek aralarında ayrım yapabilirsiniz. – ekhumoro