PyQt5: 창이 표시되지 않아도 키가 반응합니다.
해본 일
World Hot Keystroke를 사용하여 비활성 창에 키보드 훅을 놓습니다.
한 마디로 하면'Ctrl+C 같은 키 입력'을 통해'최소화나 작업 트레이에 저장된 창'도'키 입력에 반응할 수 있다'는 느낌을 받을 수 있다.
실제로 Ctrl + Shift + Alt는 작업 트레이에 반복적으로 저장하거나 다시 표시하는 프로그램을 만들었습니다.
브라우저가 활성화된 상태에서 응용 프로그램을 숨기거나 다시 표시할 수 있습니다.
또한 작업 트레이 아이콘을 눌러도 같은 행동을 할 수 있다.
(위의gif라도 다시 보이는 프로그램은 활성화되지 않음)
컨디션
boppreh/keyboard
keyboard
Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.
이것만 믿어.
PyQt는 전 세계 키보드 연결을 지원하지 않기 때문에 외부 프로그램 라이브러리를 포기하거나 의존할 수 있습니다.
※ 가장 유력한 것은 PyGlobalShortcut지만, 윈도나 리눅스나 설치가 불가능해 채용이 연기되었습니다.
소스 코드
show_or_hide.py# -*- coding: utf-8 -*-
import sys
import keyboard
from PyQt5.QtWidgets import QWidget, QApplication, QSystemTrayIcon
from PyQt5.QtGui import QIcon
from PyQt5.Qt import Qt
class Window(QWidget):
tray = QSystemTrayIcon()
def __init__(self):
super().__init__()
iconPath = 'sample_icon.png'
self.setWindowFlags(Qt.WindowStaysOnTopHint) # 常に最前面に表示
self.setWindowTitle('PyQt5 Window Show or Hide') # ウィンドウタイトル
self.setWindowIcon(QIcon(iconPath)) # ウィンドウアイコン
self.tray.setIcon(QIcon(iconPath)) # トレイアイコン
self.tray.activated.connect(self.ShowOrHide) # トレイクリック時
self.tray.show()
# グローバルホットキー:Ctrl+Shift+Altを押した場合
keyboard.add_hotkey('ctrl+shift+alt', lambda: self.ShowOrHide())
def ShowOrHide(self):
# ウィンドウの表示or非表示
if self.isHidden():
self.show()
else:
self.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
execute = Window()
execute.show()
sys.exit(app.exec_())
Reference
이 문제에 관하여(PyQt5: 창이 표시되지 않아도 키가 반응합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/v2okimochi/items/5d1de4cb3f70c6c25310
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
import sys
import keyboard
from PyQt5.QtWidgets import QWidget, QApplication, QSystemTrayIcon
from PyQt5.QtGui import QIcon
from PyQt5.Qt import Qt
class Window(QWidget):
tray = QSystemTrayIcon()
def __init__(self):
super().__init__()
iconPath = 'sample_icon.png'
self.setWindowFlags(Qt.WindowStaysOnTopHint) # 常に最前面に表示
self.setWindowTitle('PyQt5 Window Show or Hide') # ウィンドウタイトル
self.setWindowIcon(QIcon(iconPath)) # ウィンドウアイコン
self.tray.setIcon(QIcon(iconPath)) # トレイアイコン
self.tray.activated.connect(self.ShowOrHide) # トレイクリック時
self.tray.show()
# グローバルホットキー:Ctrl+Shift+Altを押した場合
keyboard.add_hotkey('ctrl+shift+alt', lambda: self.ShowOrHide())
def ShowOrHide(self):
# ウィンドウの表示or非表示
if self.isHidden():
self.show()
else:
self.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
execute = Window()
execute.show()
sys.exit(app.exec_())
Reference
이 문제에 관하여(PyQt5: 창이 표시되지 않아도 키가 반응합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/v2okimochi/items/5d1de4cb3f70c6c25310텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)