改写linux窗口程序设计的Qt例子(7)

来源:互联网 发布:马尔可夫链 知乎 编辑:程序博客网 时间:2024/05/22 14:33

首先声明,如果转载请声明作者以及来源

第三十六例子 橡皮筋线
__author__ = '375159507'try:    from PySide import QtCore    from PySide import QtGuiexcept ImportError:    from PyQt4 import QtGui    from PyQt4 import GtCoreclass 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_())

程序效果图
0 0