首先声明,如果转载请声明作者以及来源
第三十六例子 橡皮筋线
__author__ = '375159507'
try:
from PySide import QtCore
from PySide import QtGui
except ImportError:
from PyQt4 import QtGui
from PyQt4 import GtCore
class RubberBand(QtGui.QMainWindow):
def __init__(self):
super(RubberBand,self).__init__()
self.MainWidet = QtGui.QWidget()
self.MainWidet.setBackgroundRole(QtGui.QPalette.Light)
self.setWindowTitle("RubberBand")
self.MainWidet.setAutoFillBackground(True)
self.setCentralWidget(self.MainWidet)
self.resize(600,400)
self.first = True
def mousePressEvent(self,e):
self.origin = e.pos();
if self.first:
self.rubberband = QtGui.QRubberBand(QtGui.QRubberBand.Rectangle,self)
self.rubberband.setGeometry(QtCore.QRect(self.origin,QtCore.QSize()))
self.rubberband.show()
def mouseMoveEvent(self, e):
self.rubberband.setGeometry(QtCore.QRect(self.origin,e.pos()).normalized())
def mouseReleaseEvent(self, e):
if self.rubberband:
self.rubberband.hide()
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
mainwindow = RubberBand()
mainwindow.show()
sys.exit(app.exec_())
程序效果图