WEB/Electron
[Electron] 자식창(Child Window)
S0PH1A
2019. 5. 27. 12:02
반응형
[Electron] 자식창(Child Window)
자식창은 부모창 위에 보여진다.
자식창을 선언 할 때, parent: 부모창를 입력하여 부모의 자식임을 선언한다.
기본적으로 createWindow시 부모창과 자식창 모두 선언해 준다.
아래와 같이 입력하면 앱을 실행할 때 자식창과 부모창 모두 표시된다.
let win; // 부모 let child; // 자식 function createWindow() { // 부모 창 선언 win = new BrowserWindow({ width: 1400, height: 1000, webPreferences: { nodeIntegration: true } }); // 자식 창 선언 child = new BrowserWindow({ parent: win, width: 400, height: 400 }); win.loadFile('main.html'); child.loadFile('child_main.html'); win.on('closed', () => { win = null }); } app.on('ready', createWindow);
만약 특정 시점(때)에만 자식창을 보여주고 싶은 경우, 자식창에 show 옵션을 추가해 주면 된다.
자식창을 show: false로 처음에는 안보이게 한 후, 자식창.show();를 사용하여 자식창을 활성화 할 수 있다.
child = new BrowserWindow({ parent: win, width: 400, height: 400, show: false }); // 자식 창 활성화 child.show();
자식 창이 활성화 되었을 때, 자식창에만 focus를 갖게 하고 싶은 경우,
다시 말해, 자식 창을 닫기 전까지 부모 창을 조작할 수 없도록 하고 싶은 경우
자식창 옵션에 modal: ture 옵션을 추가해 주면 된다.
child = new BrowserWindow({ parent: win, width: 400, height: 400, modal: true });
[참고] https://electronjs.org/docs/api/browser-window#parent-and-child-windows
반응형