有時(shí)候我們需要按住Ctrl+鼠標(biāo)滾輪實(shí)現(xiàn)圖像放大或者縮小,因此需要這個(gè)事件,具體看代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-533687.html
import sys
from PyQt5 import QtCore
from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtGui import QPainter, QPen, QPixmap
from PyQt5.QtWidgets import QApplication, QWidget
class DemoMouseEvent(QWidget):
def __init__(self, parent=None):
super(DemoMouseEvent, self).__init__(parent)
# 設(shè)置窗口標(biāo)題
self.setWindowTitle('鼠標(biāo)事件演示')
# 設(shè)置窗口大小
self.setFixedSize(480, 320)
self.beginPoint = QPoint() # 起始點(diǎn)
self.endPoint = QPoint() # 結(jié)束點(diǎn)
self.pixmap = QPixmap(self.rect().size())
self.pixmap.fill(Qt.lightGray)
# 重繪窗口事件
def paintEvent(self, event):
pp = QPainter(self.pixmap)
pp.setPen(QPen(Qt.blue, 2)) # 設(shè)置畫筆
# 繪制直線
pp.drawLine(self.beginPoint, self.endPoint)
# 上一直線的終點(diǎn)就是下一直線的起點(diǎn)
self.beginPoint = self.endPoint
# 在畫布上畫出
painter = QPainter(self)
painter.drawPixmap(0, 0, self.pixmap)
def wheelEvent(self, ev):
mods = ev.modifiers()
#print('mods=', mods)
delta = ev.angleDelta()
#print('delta=', delta)
if QtCore.Qt.ControlModifier == int(mods):
if int(delta.y())>0:
print("ctrl 向上滾輪")
else:
print("ctrl 向下滾輪")
def mousePressEvent(self, event):
# 鼠標(biāo)左鍵按下
if event.button() == Qt.LeftButton:
self.startPoint = event.pos()
def mouseReleaseEvent(self, event):
# 鼠標(biāo)左鍵釋放
if event.button() == Qt.LeftButton:
self.endPoint = event.pos()
# 重新繪制
self.update()
def mouseMoveEvent(self, event):
# 鼠標(biāo)左鍵按下的同時(shí)移動(dòng)鼠標(biāo)
if event.buttons() and Qt.LeftButton:
self.endPoint = event.pos()
# 重新繪制
self.update()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoMouseEvent()
window.show()
sys.exit(app.exec())
文章來源:http://www.zghlxwxcb.cn/news/detail-533687.html
到了這里,關(guān)于[pyqt5]觸發(fā)ctrl+鼠標(biāo)滾輪事件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!