7 Module implementing a grabber widget for a rectangular snapshot region. |
7 Module implementing a grabber widget for a rectangular snapshot region. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt5.QtCore import pyqtSignal, Qt, QRect, QPoint, QTimer, QLocale |
10 from PyQt5.QtCore import pyqtSignal, Qt, QRect, QPoint, QTimer, QLocale |
11 from PyQt5.QtGui import ( |
11 from PyQt5.QtGui import ( |
12 QPixmap, QColor, QRegion, QPainter, QPalette, QPaintEngine, QPen, QBrush |
12 QPixmap, QColor, QRegion, QPainter, QPalette, QPaintEngine, QPen, QBrush, |
|
13 QGuiApplication, QCursor |
13 ) |
14 ) |
14 from PyQt5.QtWidgets import QWidget, QApplication, QToolTip |
15 from PyQt5.QtWidgets import QWidget, QToolTip |
15 |
16 |
16 |
17 |
17 def drawRect(painter, rect, outline, fill=None): |
18 def drawRect(painter, rect, outline, fill=None): |
18 """ |
19 """ |
19 Module function to draw a rectangle with the given parameters. |
20 Module function to draw a rectangle with the given parameters. |
110 |
111 |
111 def __initialize(self): |
112 def __initialize(self): |
112 """ |
113 """ |
113 Private slot to initialize the rest of the widget. |
114 Private slot to initialize the rest of the widget. |
114 """ |
115 """ |
115 self.__pixmap = QApplication.screens()[0].grabWindow(0) |
116 screen = QGuiApplication.screens()[0] |
|
117 self.__virtualGeometrie = screen.availableVirtualGeometry() |
|
118 screen = QGuiApplication.screenAt(QCursor.pos()) |
|
119 sgeom = screen.geometry() |
|
120 self.__pixmap = screen.grabWindow( |
|
121 0, sgeom.x(), sgeom.y(), sgeom.width(), sgeom.height()) |
116 self.resize(self.__pixmap.size()) |
122 self.resize(self.__pixmap.size()) |
117 self.move(0, 0) |
123 self.move(sgeom.x(), sgeom.y()) |
118 self.setCursor(Qt.CrossCursor) |
124 self.setCursor(Qt.CrossCursor) |
119 self.show() |
125 self.show() |
120 |
126 |
121 self.grabMouse() |
127 self.grabMouse() |
122 self.grabKeyboard() |
128 self.grabKeyboard() |