首页 > 代码库 > AMovableLabel例子
AMovableLabel例子
#! /us/bin/env python
from PyQt4 import QtCore, QtGui
class AMovableLabel(QtGui.QLabel):
def __init__(self, parent=None):
super(AMovableLabel, self).__init__(parent)
self.parent = parent
self.mouseX = False
self.mouseY = False
def mouseDoubleClickEvent(self, ev):
self.parent.maximize()
def mousePressEvent(self, ev):
self.mouseX = ev.globalX()
self.origX = self.parent.x()
self.mouseY = ev.globalY()
self.origY = self.parent.y()
def mouseMoveEvent(self, ev):
if self.mouseX and self.mouseY and not self.parent.isMaximized():
self.parent.move(self.origX + ev.globalX() - self.mouseX,
self.origY + ev.globalY() - self.mouseY)
def mouseReleaseEvent(self, ev):
self.mouseX = False
self.mouseY = False
class AMovableWindow(QtGui.QMainWindow):
def __init__(self, parent=None, hints = QtCore.Qt.Widget):
super(AMovableWindow, self).__init__(parent, hints)
self.parent = parent
self.mouseX = False
self.mouseY = False
def minimize(self):
self.setWindowState(QtCore.Qt.WindowMinimized)
def maximize(self):
if self.isMaximized():
self.setWindowState(QtCore.Qt.WindowNoState)
else:
self.setWindowState(QtCore.Qt.WindowMaximized)
def mousePressEvent(self, ev):
self.mouseX = ev.globalX()
self.origX = self.x()
self.mouseY = ev.globalY()
self.origY = self.y()
def mouseMoveEvent(self, ev):
if self.mouseX and self.mouseY and not self.isMaximized():
self.move(self.origX + ev.globalX() - self.mouseX,
self.origY + ev.globalY() - self.mouseY)
def mouseReleaseEvent(self, ev):
self.mouseX = False
self.mouseY = False