Language/Python
[pywebview] pystray를 이용한 hide/show 제어
TechNote.kr
2021. 9. 12. 12:56
728x90
pystray 로 Windows tray 를 이용하여 program을 제어할 수 있다.
(pytray 아니고 pystray)
[pystray 를 이용해 tray에서 Hide, Show, Quit 기능 추가]
import pystray
from pystray import MenuItem
from pystray import Menu
...
image_path = Image.open(base_path + '/res/tray_icon.png')
menu = Menu(MenuItem('Hide', lambda: send_cmd_to_window(parent_pipe, 'hide')),
MenuItem('Show', lambda: send_cmd_to_window(parent_pipe, 'show')),
MenuItem('Quit', lambda: quit_window(subprocess_handler)))
icon = pystray.Icon('pyWebView_Sample', image_path, 'pyWebView', menu)
icon.run()
[pywebview] subprocess 를 이용한 pywebview 분리 실행 (technote.kr)
별도의 process 로 pywebview 를 실행시 분리한 상황이라 pipe 를 통해 cmd를 전달한다.
def send_cmd_to_window(parent_pipe, cmd):
parent_pipe.send(cmd)
def cmd_recv(child_pipe):
while True:
cmd = child_pipe.recv()
if cmd == 'show':
webview.windows[0].show()
elif cmd == 'hide':
webview.windows[0].hide()
pywebview 가 실행 중인 process에서는 pipe를 통해 cmd가 전달되면 해당 cmd에 맞게 기능을 수행한다.
webview.windows[0] 을 통해 pywebview의 window handler를 hide 하거나 show 한다.
(Hide / show window | pywebview (flowrl.com))
[실제 구현 코드]
Control pywebview show/hide via pystray · TechNoteGit/pywebview_example@3a35562 (github.com)
728x90