RubberBandを表示する
PySideでマウスのドラッグ&ドロップで範囲を表示したい場合は
QRubberBandを使用するとかんたんに作ることができます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | # -*- coding: utf-8 -*-
import sys
from PySide2.QtWidgets import QDialog, QRubberBand, QApplication
from PySide2.QtCore import QRect
class RubberBandTest(QDialog):
rubber_band = None
def __init__(self, parent=None):
super().__init__(parent)
self.resize(300, 300)
def mousePressEvent(self, e):
self.origin = e.pos()
if not self.rubber_band:
self.rubber_band = QRubberBand(QRubberBand.Rectangle, self)
self.rubber_band.setGeometry(QRect(self.origin, e.pos()).normalized())
self.rubber_band.show()
def mouseMoveEvent(self, e):
self.rubber_band.setGeometry(QRect(self.origin, e.pos()).normalized())
def mouseReleaseEvent(self, e):
self.rubber_band.hide()
self.rubber_band = None
if __name__ == '__main__':
app = QApplication(sys.argv)
a = RubberBandTest()
a.show()
sys.exit(app.exec_())
|