Barres de progression
Vue d'ensembleâ
Une barre de progression permet Ă une fenĂȘtre de fournir une information Ă l'utilisateur sur la progression sans avoir besoin de basculer sur cette mĂȘme fenĂȘtre.
Sous Windows, vous pouvez utiliser un bouton de la barre des tĂąches pour afficher une barre de progression.
Sous macOS, la barre de progression s'affichera dans le cadre de l'icĂŽne du dock.
Sur Linux, lâinterface graphique Unity dispose Ă©galement dâune fonctionnalitĂ© similaire qui vous permet de spĂ©cifier la barre de progression dans le lanceur.
REMARQUE : sur Windows, chaque fenĂȘtre peut avoir sa propre barre de progression, tandis que sur macOS et Linux (Unity) il ne peut y avoir quâune seule barre de progression pour lâapplication.
All three cases are covered by the same API - the setProgressBar()
method available on an instance of BrowserWindow
. Pour indiquer l'état de la progression vous devez appeler cette méthode avec un nombre entre 0
et 1
. Par exemple: Si vous avez une tĂąche qui dure relativement longtemps et qui est en est actuellement Ă 63% avant sa finalisation, vous l'appellerez avec setProgressBar(0.63)
.
Si le paramÚtre à une valeur négative (par exemple -1
) cela supprimera la barre de progression. . Une valeur supérieure à 1
indiquera sous Windows une barre de progression indĂ©finie et la verrouillera Ă 100% avec les autres systĂšmes d'exploitation. Une barre de progression indĂ©terminĂ©e reste active mais nâaffiche pas de pourcentage rĂ©el et est utilisĂ©e pour les situations oĂč on ne sait pas combien de temps une opĂ©ration prendra pour se terminer.
See the API documentation for more options and modes.
Exempleâ
Dans cet exemple, nous ajoutons une barre de progression Ă la fenĂȘtre principale qui sâincrĂ©mente au fil du temps Ă lâaide des timers de Node.js.
- main.js
- index.html
const { app, BrowserWindow } = require('electron/main')
let progressInterval
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600
})
win.loadFile('index.html')
const INCREMENT = 0.03
const INTERVAL_DELAY = 100 // ms
let c = 0
progressInterval = setInterval(() => {
// update progress bar to next value
// values between 0 and 1 will show progress, >1 will show indeterminate or stick at 100%
win.setProgressBar(c)
// increment or reset progress bar
if (c < 2) {
c += INCREMENT
} else {
c = (-INCREMENT * 5) // reset to a bit less than 0 to show reset state
}
}, INTERVAL_DELAY)
}
app.whenReady().then(createWindow)
// before the app is terminated, clear both timers
app.on('before-quit', () => {
clearInterval(progressInterval)
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>Keep an eye on the dock (Mac) or taskbar (Windows, Unity) for this application!</p>
<p>It should indicate a progress that advances from 0 to 100%.</p>
<p>It should then show indeterminate (Windows) or pin at 100% (other operating systems)
briefly and then loop.</p>
</body>
</html>
AprĂšs le lancement de lâapplication Electron, le dock (macOS) ou la barre des tĂąches (Windows, Unity) affichera une barre de progression qui commence Ă zĂ©ro et progresse jusquâĂ 100 % Ă la fin. Ensuite cela devrait s'afficher briĂšvement en indĂ©terminĂ© (Windows) ou vĂ©rouillĂ© Ă 100% (autres systĂšmes d'exploitation), puis boucler.
Pour macOS, la barre de progression de votre application sera également indiquée lors de l'utilisation de Mission Control: