Example #1
0
 def moveByName(self, name):
     dic = {
             'left': 0,
             'right': QApplication.screens()[0].size().width(),
             'center': QApplication.screens()[0].size().width()/2-self.width()/2,
     }
     self.move(dic[name], self.y())
Example #2
0
    def __performGrab(self, mode):
        """
        Private method to perform a screen grab other than a selected region.
        
        @param mode screenshot mode
        @type SnapshotModes
        """
        self.__grabberWidget.releaseMouse()
        self.__grabberWidget.hide()
        self.__grabTimer.stop()

        if mode == SnapshotModes.Fullscreen:
            desktop = QApplication.desktop()
            snapshot = QApplication.screens()[0].grabWindow(
                desktop.winId(), desktop.x(), desktop.y(), desktop.width(),
                desktop.height())
        elif mode == SnapshotModes.SelectedScreen:
            desktop = QApplication.desktop()
            if Globals.qVersionTuple() >= (5, 10, 0):
                screen = QApplication.screenAt(QCursor.pos())
                geom = screen.geometry()
            else:
                screenId = desktop.screenNumber(QCursor.pos())
                geom = desktop.screenGeometry(screenId)
            x = geom.x()
            y = geom.y()
            snapshot = QApplication.screens()[0].grabWindow(
                desktop.winId(), x, y, geom.width(), geom.height())
        else:
            snapshot = QPixmap()

        self.grabbed.emit(snapshot)
Example #3
0
def main():
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.move(app.screens()[0].geometry().topLeft())
    mainWindow.showMaximized()
    mainWindow.dataWindow.move(app.screens()[-1].geometry().topLeft())
    mainWindow.dataWindow.showMaximized()
    sys.exit(app.exec())
Example #4
0
 def _getPixelRatio():
     if PyQtImpl == "PyQt5":
         # Source: https://stackoverflow.com/a/40053864/3388962
         pos = QCursor.pos()
         for screen in QApplication.screens():
             rect = screen.geometry()
             if rect.contains(pos):
                 return screen.devicePixelRatio()
         # Should never happen, but try to find a good fallback.
         return QApplication.screens()[0].devicePixelRatio()
     else:
         # Qt4 seems not to provide any cross-platform means to get the
         # pixel ratio.
         return 1.
Example #5
0
def captureScreen():
    ''' Captures the screen the mouse is currently on '''
    num = QApplication.desktop().screenNumber(QCursor.pos())
    geo = QApplication.screens()[num].geometry()

    return _captureRegion(geo.x(), geo.y(), geo.width(), geo.height(),
                          0).toImage()
Example #6
0
def captureRegion():
    screens = [(g.x(), g.y(), g.width(), g.height())
               for g in (s.geometry() for s in QApplication.screens())]

    log.debug('Screens: {}', screens)

    x, y, w, h = _getDesktopBounds()
    pixmap = _captureRegion(x, y, w, h, 0)

    log.debug('Opening region select window at {x}, {y} with dims {w}, {h}',
              x=x,
              y=y,
              w=w,
              h=h)
    sel = RegionSelector(x, y, w, h, pixmap)
    sel.exec_()

    toCopy = sel.selection

    if toCopy is None: return None

    return pixmap.copy(toCopy.toRect()).toImage()


#enddef
Example #7
0
 def __init__(self, parent=None):
     super(MainWindow, self).__init__()
     self.preview_screen = QApplication.primaryScreen().grabWindow(0)
     print(QApplication.screens())
     self.settings()
     self.create_widgets()
     self.set_layout()
Example #8
0
def main():
    import argparse

    parser = argparse.ArgumentParser(description='Process some integers.')
    parser.add_argument('-1', nargs='?', type=int, dest='screen', const='0')
    parser.add_argument('-2', nargs='?', type=int, dest='screen', const='1')
    parser.add_argument('-3', nargs='?', type=int, dest='screen', const='2')
    args = parser.parse_args()
    
    app = QApplication(sys.argv)
    _setPalette(app)

    number_of_screens = len(app.screens())

    screens = _get_screens(app)
    
    if number_of_screens > 1 and args.screen is None:
        args.screen = show_screen_selection(screens)
        if args.screen == 0 or args.screen is None:
            print('No screen chosen, exiting.')
            sys.exit(0)
        else:
            args.screen -= 1
    elif args.screen is None:
        args.screen = 0
        
    screen, screen_geom, pixmap = screens[args.screen]
    
    window = ScreenPenWindow(screen, screen_geom, pixmap)
    sys.exit(app.exec_())
Example #9
0
def captureRegion(x, y, width, height, winId = 0):
	''' Captures a region '''

	region = QRect(x, y, width, height)

	screens = [s for s in QApplication.screens() if s.geometry().intersects(region)]

	# How much to reposition each image so the whole thing is based at 0, 0
	offsetX, offsetY = -x, -y

	final = QImage(width, height, QImage.Format_ARGB32)
	final.fill(QColor(0, 0, 0, 255))

	painter = QPainter()
	painter.begin(final)
	painter.setCompositionMode(QPainter.CompositionMode_Source)

	for screen in screens:
		geo = screen.geometry()
		shot = screen.grabWindow(winId, geo.x(), geo.y(), geo.width(), geo.height())

		# determine the area to copy
		toCopy = geo.intersected(region)

		# Composite it onto the final
		painter.drawPixmap(toCopy.x() + offsetX, toCopy.y() + offsetY, shot.copy(toCopy))
	#end for

	painter.end()

	return final
Example #10
0
    def position_menu(self):
        """Set menu position from tray icon."""
        menu = self.trayicon.contextMenu()
        desktop = QApplication.desktop()
        screen = QApplication.screens()[desktop.screenNumber(menu)]

        screen_geom = screen.availableGeometry()
        menu_size = menu.sizeHint()
        icon_geom = self.trayicon.geometry()

        if icon_geom.left() + menu_size.width() <= screen_geom.right():
            left = icon_geom.left()
        elif icon_geom.right() - menu_size.width() >= screen_geom.left():
            left = icon_geom.right() - menu_size.width()
        else:
            return

        if icon_geom.bottom() + menu_size.height() <= screen_geom.bottom():
            top = icon_geom.bottom()
        elif icon_geom.top() - menu_size.height() >= screen_geom.top():
            top = icon_geom.top() - menu_size.height()
        else:
            return

        menu.move(left, top)
Example #11
0
 def _getPixelRatio():
     pos = QCursor.pos()
     for screen in QApplication.screens():
         rect = screen.geometry()
         if rect.contains(pos):
             return screen.devicePixelRatio()
     return 1
Example #12
0
    def visualize(self):
        app = QApplication(sys.argv)
        screen = app.screens()[0]
        dpi = screen.physicalDotsPerInch()
        app.quit()
        xx = np.linspace(self.xlim[0], self.xlim[1], visualizer.dense)
        yy = np.linspace(self.ylim[0], self.ylim[1], visualizer.dense)
        xx, yy = np.meshgrid(xx, yy)

        X = np.array([[p[0], p[1]] for p in zip(xx.flatten(), yy.flatten())])
        zz = self.model.inference(X).reshape(xx.shape)

        fig = plt.figure(figsize=(self.figure_size[0] / dpi,
                                  self.figure_size[1] / dpi))
        # ax = plt.gca()
        # fig = Figure(figsize = self.figure_size)
        # canvas = FigureCanvas(fig)
        ax = fig.gca()
        ax.pcolor(xx, yy, zz, cmap='RdBu_r')
        sns.scatterplot(self.model._X[:, 0],
                        self.model._X[:, 1],
                        hue=self.model._y,
                        ax=ax)
        ax.set_xlim(self.xlim)
        ax.set_ylim(self.ylim)
        ax.axis('off')
        ax.legend().remove()

        plt.savefig("tmp.png", dpi=dpi)
        image = Image.open("tmp.png")
        return image
Example #13
0
 def __init__(self, parent=None):
     super(MainWindow, self).__init__()
     self.preview_screen = QApplication.primaryScreen().grabWindow(0)
     print(QApplication.screens())
     self.ayarlar()
     self.mainEmsal()
     self.set_layout()
Example #14
0
 def __findScreen(self,name):
 #  app = QApplication(sys.argv)
   if name == "all":
     print("Not implemented yet")
     sys.exit(1)
   screens = QApplication.screens()
   for scr in screens:
     if scr.name() == name:
       return scr
Example #15
0
    def fill_screen_list(self):
        # TODO: SCREEN settings value gets overwritten
        self.ui.cb_screen.clear()
        for i in range(len(QApplication.screens())):
            self.ui.cb_screen.addItem("Screen %d" % (i+1))
        screen = Settings().get_value(Settings.SCREEN)

        if screen is not None:
            self.ui.cb_screen.setCurrentIndex(int(screen))
Example #16
0
def get_screen_dpi():
    import sys
    from PyQt5.QtWidgets import QApplication
    app = QApplication(sys.argv)
    screen = app.screens()[0]
    dpi = screen.physicalDotsPerInch()
    app.quit()

    return dpi
Example #17
0
 def newBalloonPoint(self):
     screen = QApplication.screens()[0].size()
     headradius = min(self.width(), self.height()) / 2
     pos = self.pos() + QPoint(headradius, headradius)
     tocenter = QVector2D(screen.width()/2-pos.x(), screen.height()/2-pos.y())
     radorig = math.atan2(tocenter.y(), tocenter.x())
     raddiff = random.gauss(0, 0.5**2)*math.pi
     radius = headradius * random.uniform(1.6,2.2)
     diff = QPoint(radius*math.cos(radorig+raddiff), radius*math.sin(radorig+raddiff))
     return pos + diff
 def screenshot(self):
     self._screenImg = QPixmap(self._screenSize)
     self._screenImg.fill(Qt.black)
     painter = QPainter(self._screenImg)
     for index, screen in enumerate(QApplication.screens()):
         p = screen.grabWindow(0)
         offx = QApplication.desktop().pos().x()
         offy = QApplication.desktop().pos().y()
         x, y, w, h = screen.geometry().getRect()
         painter.drawPixmap(QPoint(x - offx, y - offy), p)
Example #19
0
def _getDesktopBounds():
    screens = QApplication.screens()

    # Calculate the bounds of the final image
    geos = [s.geometry() for s in screens]
    minX, minY = min(g.x() for g in geos), min(g.y() for g in geos)
    maxX, maxY = max(g.x() + g.width() for g in geos), max(g.y() + g.height()
                                                           for g in geos)

    return minX, minY, maxX - minX, maxY - minY
Example #20
0
def captureDesktop():
	''' Captures the whole desktop '''

	screens = QApplication.screens()

	# Calculate the bounds of the final image
	geos = [s.geometry() for s in screens]
	minX, minY = min(g.x() for g in geos), min(g.y() for g in geos)
	maxX, maxY = max(g.x() + g.width() for g in geos), max(g.y() + g.height() for g in geos)

	return captureRegion(minX, minY, maxX - minX, maxY - minY)
Example #21
0
class Application:
  app: QApplication = None
  window: MainWindow = None
  joystick: xbox.Joystick = None
  timer: QTimer = None

  def __init__(self):
    self.refresh_rate = 30
    self.view_model = ViewModel()
    self.debouncer: JoystickDebouncer = None

  def start(self):
    if self.app is not None:
      return

    self.app = QApplication(sys.argv)
    dpi.DPI = self.app.screens()[0].physicalDotsPerInch()

    self.init_window()
    self.joystick = xbox.Joystick(self.refresh_rate)

    # Init timer
    # TODO init debouncer
    self.debouncer = JoystickDebouncer(self.app, 60, 250)
    self.debouncer.trigger = self.get_joystick_state
    self.debouncer.notify = self.draw

    self.debouncer.start()

    sys.exit(self.app.exec_())

  def get_joystick_state(self) -> JoystickState:
    joystick_state = JoystickState()
    joystick_state.green_pressed = self.joystick.A() == 1
    joystick_state.red_pressed = self.joystick.B() == 1
    joystick_state.yellow_pressed = self.joystick.Y() == 1
    joystick_state.blue_pressed = self.joystick.X() == 1
    joystick_state.orange_pressed = self.joystick.leftBumper() == 1

    return joystick_state

  def draw(self, view_model: ViewModel):
    if view_model is None:
      return

    self.view_model = view_model
    self.window.update()

  def init_window(self):
    self.window = MainWindow(self)
    self.window.load_dictionary()
    self.window.show()
Example #22
0
    def __performGrab(self):
        """
        Private method to perform a screen grab other than a selected region.
        """
        self.__grabberWidget.releaseMouse()
        self.__grabberWidget.hide()
        self.__grabTimer.stop()

        if self.__mode == SnapWidget.ModeFullscreen:
            desktop = QApplication.desktop()
            if qVersion() >= "5.0.0":
                self.__snapshot = QApplication.screens()[0].grabWindow(
                    desktop.winId(), desktop.x(), desktop.y(), desktop.width(),
                    desktop.height())
            else:
                self.__snapshot = QPixmap.grabWindow(desktop.winId(),
                                                     desktop.x(), desktop.y(),
                                                     desktop.width(),
                                                     desktop.height())
        elif self.__mode == SnapWidget.ModeScreen:
            desktop = QApplication.desktop()
            screenId = desktop.screenNumber(QCursor.pos())
            geom = desktop.screenGeometry(screenId)
            x = geom.x()
            y = geom.y()
            if qVersion() >= "5.0.0":
                self.__snapshot = QApplication.screens()[0].grabWindow(
                    desktop.winId(), x, y, geom.width(), geom.height())
            else:
                self.__snapshot = QPixmap.grabWindow(desktop.winId(), x, y,
                                                     geom.width(),
                                                     geom.height())
        else:
            self.__snapshot = QPixmap()

        self.__redisplay()
        self.__modified = True
        self.__updateCaption()
Example #23
0
 def _getPixelRatio():
     if PyQtImpl in ["PyQt5", "PySide2"]:
         # Source: https://stackoverflow.com/a/40053864/3388962
         pos = QCursor.pos()
         for screen in QApplication.screens():
             rect = screen.geometry()
             if rect.contains(pos):
                 return screen.devicePixelRatio()
         # Should never happen, but try to find a good fallback.
         return QApplication.devicePixelRatio()
     else:
         # Qt4 seems not to provide any cross-platform means to get the
         # pixel ratio.
         return 1.
Example #24
0
def initConfigParams():
    global configParams
    configParams = {}
    screen = QApplication.screens()[0]
    display_width_px = screen.size().width()
    display_height_px = screen.size().height()

    update(
        square_field=False,
        monitorIndex=len(QApplication.screens()) - 1,
        deviceFrameRate=screen.refreshRate(),
        frameRateDivisor=1,
        field_width_um=display_width_px * 2,
        field_height_um=display_height_px * 2,
        field_width_px=display_width_px,
        field_height_px=display_height_px,
        field_left_px=0,
        field_top_px=0,
        electrodeDistance_um_X=100,
        electrodeDistance_um_Y=100,
        electrodeOffset_um_X=-750,
        electrodeOffset_um_Y=-750,
        electrodeZone1_left=1,
        electrodeZone1_top=0,
        electrodeZone1_right=14,
        electrodeZone1_bottom=15,
        electrodeZone2_left=0,
        electrodeZone2_top=1,
        electrodeZone2_right=15,
        electrodeZone2_bottom=14,
        fft_width_px=1024,
        fft_height_px=1024,
        msr_stop_port=('COM5', 'RTS'),
        exp_sync_port=('COM5', 'BREAK'),
        stim_sync_port=('COM3', 'RTS'),
        tick_port=('COM3', 'BREAK'),
    )
Example #25
0
 def __performGrab(self):
     """
     Private method to perform a screen grab other than a selected region.
     """
     self.__grabberWidget.releaseMouse()
     self.__grabberWidget.hide()
     self.__grabTimer.stop()
     
     if self.__mode == SnapWidget.ModeFullscreen:
         desktop = QApplication.desktop()
         if qVersion() >= "5.0.0":
             self.__snapshot = QApplication.screens()[0].grabWindow(
                 desktop.winId(), desktop.x(), desktop.y(),
                 desktop.width(), desktop.height())
         else:
             self.__snapshot = QPixmap.grabWindow(
                 desktop.winId(), desktop.x(), desktop.y(),
                 desktop.width(), desktop.height())
     elif self.__mode == SnapWidget.ModeScreen:
         desktop = QApplication.desktop()
         screenId = desktop.screenNumber(QCursor.pos())
         geom = desktop.screenGeometry(screenId)
         x = geom.x()
         y = geom.y()
         if qVersion() >= "5.0.0":
             self.__snapshot = QApplication.screens()[0].grabWindow(
                 desktop.winId(), x, y, geom.width(), geom.height())
         else:
             self.__snapshot = QPixmap.grabWindow(
                 desktop.winId(), x, y, geom.width(), geom.height())
     else:
         self.__snapshot = QPixmap()
     
     self.__redisplay()
     self.__modified = True
     self.__updateCaption()
Example #26
0
 def start(self, seconds):
     """
     Public method to start the timer.
     
     @param seconds timeout value (integer)
     """
     if qVersionTuple() >= (5, 10, 0):
         screenGeom = QApplication.screens()[0].geometry()
     else:
         screenGeom = QApplication.desktop().screenGeometry()
     self.move(screenGeom.width() // 2 - self.size().width() // 2,
               screenGeom.top())
     self.__toggle = True
     self.__time = 0
     self.__length = seconds
     self.__timer.start(1000)
     self.show()
Example #27
0
 def enterEvent(self, evt):
     """
     Protected method handling the mouse cursor entering the widget.
     
     @param evt enter event (QEvent)
     """
     if qVersionTuple() >= (5, 10, 0):
         screenGeom = QApplication.screens()[0].geometry()
     else:
         screenGeom = QApplication.desktop().screenGeometry()
     if self.x() == screenGeom.left():
         self.move(
             screenGeom.x() +
             (screenGeom.width() // 2 - self.size().width() // 2),
             screenGeom.top())
     else:
         self.move(screenGeom.topLeft())
Example #28
0
 def speak(self, text):
     balloon = Balloon(text, point=self.newBalloonPoint(), parent=self)
     def closure(ev):
         try:
             self.balloons.remove(balloon)
         except ValueError:
             pass
     balloon.destroyed.connect(closure)
     self.balloons.append(balloon)
     balloon.show()
     # before show(), the size() have not calculated yet
     pos = balloon.pos() - QPoint(balloon.width()/2, balloon.height()/2)
     if pos.x() < 0: pos.setX(0)
     if pos.y() < 0: pos.setY(0)
     screen = QApplication.screens()[0].size() - balloon.size()
     if screen.width()  < pos.x(): pos.setX(screen.width())
     if screen.height() < pos.y(): pos.setY(screen.height())
     balloon.move(pos)
    def __initialize(self):
        """
        Private slot to initialize the rest of the widget.
        """
        self.__desktop = QApplication.desktop()
        x = self.__desktop.x()
        y = self.__desktop.y()
        self.__pixmap = QApplication.screens()[0].grabWindow(
            self.__desktop.winId(), x, y, self.__desktop.width(),
            self.__desktop.height())
        self.resize(self.__pixmap.size())
        self.move(x, y)
        self.setCursor(Qt.CrossCursor)
        self.show()

        self.grabMouse()
        self.grabKeyboard()
        self.activateWindow()
Example #30
0
    def load_settings(self) -> None:
        self.settings.beginGroup('location')
        self._opened_file_name = self.settings.value('open', str(Path.cwd()),
                                                     str)
        self._exported_file_name = self.settings.value('export',
                                                       str(Path.cwd()), str)
        self.settings.endGroup()

        self.settings.beginGroup('window')
        # Fallback: Center the window
        desktop: QScreen = QApplication.screens()[0]
        window_frame: QRect = self.frameGeometry()
        desktop_center: QPoint = desktop.availableGeometry().center()
        window_frame.moveCenter(desktop_center)
        self.move(window_frame.topLeft())

        self.restoreGeometry(self.settings.value('geometry', QByteArray()))
        self.restoreState(self.settings.value('state', QByteArray()))
        self.settings.endGroup()
Example #31
0
 def grab_entire_desktop_qt() -> QPixmap:
     """
     Grab the entire desktop screenshot to QPixmap (Qt default implementation)
     :return: QPixmap instance or None
     :rtype: QPixmap
     """
     geo = QRect()
     for screen in QGuiApplication.screens():
         src_rect = screen.geometry()
         src_rect.moveTo(int(src_rect.x() / screen.devicePixelRatio()),
                         int(src_rect.y() / screen.devicePixelRatio()))
         geo = geo.united(src_rect)
     pixmap = QApplication.primaryScreen().grabWindow(
         QApplication.desktop().winId(), geo.x(), geo.y(), geo.width(),
         geo.height())
     screen_no = QApplication.desktop().screenNumber()
     screen = QApplication.screens()[screen_no]
     pixmap.setDevicePixelRatio(screen.devicePixelRatio())
     return pixmap
Example #32
0
    def __initialize(self):
        """
        Private slot to initialize the rest of the widget.
        """
        self.__desktop = QApplication.desktop()
        x = self.__desktop.x()
        y = self.__desktop.y()
        if qVersion() >= "5.0.0":
            self.__pixmap = QApplication.screens()[0].grabWindow(
                self.__desktop.winId(), x, y,
                self.__desktop.width(), self.__desktop.height())
        else:
            self.__pixmap = QPixmap.grabWindow(
                self.__desktop.winId(), x, y,
                self.__desktop.width(), self.__desktop.height())
        self.resize(self.__pixmap.size())
        self.move(x, y)
        self.setCursor(Qt.CrossCursor)
        self.show()

        self.grabMouse()
        self.grabKeyboard()
Example #33
0
def grab_screens() -> QPixmap:
    """Return a screenshot of all screens."""
    # grab all screens
    screens = QApplication.screens()
    pixmaps = []
    w = 0
    h = 0
    for screen in screens:
        pix = screen.grabWindow(0)
        w += pix.width()
        h = max(h, pix.height())
        pixmaps.append(pix)

    # merge all pixmaps
    final = QPixmap(w, h)
    painter = QPainter(final)
    final.fill(Qt.white)
    p = 0
    for pixmap in pixmaps:
        painter.drawPixmap(QPoint(p, 0), pixmap)
        p += pixmap.width()
    return final
Example #34
0
    def __init__(self):
        """
        Constructor
        """
        super(NotificationsPage, self).__init__()
        self.setupUi(self)
        self.setObjectName("NotificationsPage")

        minX, maxX = self.xSpinBox.maximum(), self.xSpinBox.minimum()
        minY, maxY = self.ySpinBox.maximum(), self.ySpinBox.minimum()
        if qVersionTuple() >= (5, 10, 0):
            for screen in QApplication.screens():
                geom = screen.availableGeometry()
                minX = min(minX, geom.x())
                maxX = max(maxX, geom.x() + geom.width())
                minY = min(minY, geom.y())
                maxY = max(maxY, geom.y() + geom.height())
        else:
            desk = QApplication.desktop()
            for screen in range(desk.screenCount()):
                geom = desk.availableGeometry(screen)
                minX = min(minX, geom.x())
                maxX = max(maxX, geom.x() + geom.width())
                minY = min(minY, geom.y())
                maxY = max(maxY, geom.y() + geom.height())
        self.xSpinBox.setMinimum(minX)
        self.xSpinBox.setMaximum(maxX)
        self.ySpinBox.setMinimum(minY)
        self.ySpinBox.setMaximum(maxY)

        self.__notification = None

        # set initial values
        self.enableCheckBox.setChecked(
            Preferences.getUI("NotificationsEnabled"))
        self.timeoutSpinBox.setValue(Preferences.getUI("NotificationTimeout"))
        point = Preferences.getUI("NotificationPosition")
        self.xSpinBox.setValue(point.x())
        self.ySpinBox.setValue(point.y())
Example #35
0
    def save_image(self):
        # Change filename to match needed format
        self.filename = self.filename[:-3] + "eps"

        self.canvas.postscript(file=self.filename,
                               height=self.height,
                               width=self.width)
        img = Image.open(self.filename)

        ps = self.canvas.postscript(colormode='color',
                                    x=0,
                                    y=0,
                                    height=self.height,
                                    width=self.width)
        app = QApplication(sys.argv)
        screen = app.screens()[0]
        dpi = screen.physicalDotsPerInch()
        app.quit()

        def open_eps(ps, dpi=300.0):
            img = Image.open(io.BytesIO(ps.encode('utf-8')))
            original = [float(d) for d in img.size]
            scale = dpi / 72.0
            if dpi is not 0:
                img.load(scale=math.ceil(scale))
            if scale != 1:
                img.thumbnail([round(scale * d) for d in original],
                              Image.ANTIALIAS)
            return img

        # im = Image.open('test.ps')
        img = open_eps(ps, dpi=dpi)
        img.save("victory.png", dpi=(dpi, dpi))

        tkinter.messagebox.askokcancel(
            '!',
            'You are now exiting the GUI.  Your updated image has been saved as "victory.png" on your device.'
        )
Example #36
0
 def get_frame(self):
     time_mill = time.time() * 1000
     if time_mill - self.pre_time < 800:
         return [None, 1]
     else:
         self.pre_time = time_mill
     app = QApplication(sys.argv)
     screens = app.screens()
     if len(screens) == 0:
         logger.info("screen :0")
         return [None, -1]
     window = screens[0].grabWindow(self.hwnd)
     if win32gui.IsWindow(self.hwnd) == 1:
         window_rect = win32gui.GetWindowRect(self.hwnd)
         img = window.toImage()
         img_np = self.convertQImageToMat(img)
         self.update_locate(window_rect, img_np.shape)
         img_np = img_np[-2 - 960:-2, 2:-2, 0:3].copy()
         if img_np.shape[0] != 960:
             raise Exception("错误的分辨率")
         return [img_np, 1]
     else:
         return [None, -1]
Example #37
0
def main():

    # get screen DPI
    app = QApplication(sys.argv)
    screen = app.screens()[0]
    dpi = screen.physicalDotsPerInch()
    print('DPI : ', dpi)
    app.quit()

    # read data
    objTX_Data = TX_Data()
    objTX_Data.ReadData("./source/AI_Log_15n_50.csv")
    objTX_Data.CalculateTech()

    objDraw_Data = Draw_Data(dpi, 100)

    # prepare wxPython framework
    app = wx.App(False)
    frame = MainFrame(None, objTX_Data, objDraw_Data)
    frame.SetScrollBarRange(objTX_Data.m_iTotalRecords)
    frame.Show(True)

    # start the applications
    app.MainLoop()
Example #38
0
 def landOnScreen(self):
     screen = QApplication.screens()[0].size()
     self.move(self.x(), screen.height() - self.height()
             + self.y() - self.geometry().y())