Electron官方文档(v1.6.1)中文翻译

4. screen

2017-03-21  本文已影响45人  Shmily落墨

原文:https://github.com/electron/electron/blob/master/docs/api/screen.md
译者:Lin

检索关于屏幕大小、显示器、光标位置等信息。

进程:主进程渲染进程

你不可以在app模块分发ready事件之前引用或使用这个模块。

screen是一个EventEmitter

注意:在渲染器或开发工具中,window.screen是一个被存储着的DOM属性,所以写let {screen} = require('electron')是无效的。

创建一个充满整个屏幕的窗口的例子:

const electron = require('electron')
const {app, BrowserWindow} = electron

let win

app.on('ready', () => {
    const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize
    win = new BrowserWindow({width, height})
    win.loadURL('https://github.com')
})

在外接显示器中创建一个窗口的例子:

const electron = require('electron')
const {app, BrowserWindow} = require('electron')

let win

app.on('ready', () => {
    let displays = electron.screen.getAllDisplays()
    let externalDisplay = displays.find((display) => {
        return display.bounds.x !== 0 || display.bounds.y !== 0
    })

    if (externalDisplay) {
        win = new BrowserWindow({
        x: externalDisplay.bounds.x + 50,
        y: externalDisplay.bounds.y + 50
        })
        win.loadURL('https://github.com')
    }
})

事件

screen模块会分发以下事件:

事件: 'display-added'

返回值为:

newDisplay已经被添加的时候分发这个事件。

事件: 'display-removed'

返回值为:

oldDisplay已经被移除的时候分发这个事件。

事件: 'display-metrics-changed'

返回值为:

当在一个display钟一个或多个度量改变的时候这个事件被分发。changedMetrics是一个描述变化的字符串组成的数组。可能的改变有boundsworkAreascaleFactorrotation

方法

screen模块有以下方法:

screen.getCursorScreenPoint()

返回值为Object类型:

鼠标指针的当前绝对位置。

screen.getPrimaryDisplay()

返回值为Display类型 - 主显示器。

screen.getAllDisplays()

返回值为Display[]类型 - 目前可用的所有显示器组成的数组。

screen.getDisplayNearestPoint(point)

返回值为Display类型 - 最接近指定点的显示器。

screen.getDisplayMatching(rect)

返回值为Display - 最靠近指定位置范围的显示器。

上一篇下一篇

猜你喜欢

热点阅读