toxygen/src/widgets.py

56 lines
1.6 KiB
Python
Raw Normal View History

2016-05-24 20:22:21 +02:00
try:
from PySide import QtCore, QtGui
except ImportError:
from PyQt4 import QtCore, QtGui
2016-04-24 12:45:11 +02:00
class DataLabel(QtGui.QLabel):
def paintEvent(self, event):
painter = QtGui.QPainter(self)
metrics = QtGui.QFontMetrics(self.font())
text = metrics.elidedText(self.text(), QtCore.Qt.ElideRight, self.width())
painter.drawText(self.rect(), self.alignment(), text)
class CenteredWidget(QtGui.QWidget):
def __init__(self):
super(CenteredWidget, self).__init__()
self.center()
def center(self):
qr = self.frameGeometry()
cp = QtGui.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
2016-05-18 23:38:21 +02:00
class QRightClickButton(QtGui.QPushButton):
2016-05-18 23:38:21 +02:00
def __init__(self, parent):
super(QRightClickButton, self).__init__(parent)
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.RightButton:
self.emit(QtCore.SIGNAL("rightClicked()"))
else:
super(QRightClickButton, self).mousePressEvent(event)
class RubberBand(QtGui.QRubberBand):
def __init__(self):
super(RubberBand, self).__init__(QtGui.QRubberBand.Rectangle, None)
self.setPalette(QtGui.QPalette(QtCore.Qt.transparent))
self.pen = QtGui.QPen(QtCore.Qt.blue, 4)
self.pen.setStyle(QtCore.Qt.SolidLine)
self.painter = QtGui.QPainter()
def paintEvent(self, event):
self.painter.begin(self)
self.painter.setPen(self.pen)
self.painter.drawRect(event.rect())
self.painter.end()