不重复造轮子,继续转载,不过也修改了一些,代码如下:
#-*- coding:utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
QTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8"))
class RubberBand(QMainWindow):
def __init__(self):
super(RubberBand,self).__init__()
self.MainWidet = QWidget()
self.MainWidet.setBackgroundRole(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 = QRubberBand(QRubberBand.Rectangle,self)
self.rubberband.setGeometry(QRect(self.origin,QSize()))
self.rubberband.show()
def mouseMoveEvent(self, e):
self.rubberband.setGeometry(QRect(self.origin,e.pos()).normalized())
def mouseReleaseEvent(self, e):
if self.rubberband:
self.rubberband.hide()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
mainwindow = RubberBand()
mainwindow.show()
sys.exit(app.exec_())