Pyloid
Pyloid는 PySide6의 QApplication을 확장한 애플리케이션 클래스로, 데스크톱 애플리케이션 개발을 위한 다양한 기능을 제공합니다.
초기화
class Pyloid(QApplication):
def __init__(self, app_name: str, single_instance: bool = True):
# ...
app_name은 자동 시작 / 단일 인스턴스의 키 이름으로 사용됩니다.
매개변수
app_name
(str): 애플리케이션 이름 (자동 시작 / 단일 인스턴스의 키 이름으로 사용됩니다.)single_instance
(bool): 단일 인스턴스 모드를 활성화합니다. 기본값은 True입니다.
주요 메서드
창 관리
create_window
def create_window(self, title: str = "pylon app", width: int = 800, height: int = 600, x: int = 200, y: int = 200, frame: bool = True, context_menu: bool = False, dev_tools: bool = False, js_apis: List[PylonAPI] = []) -> BrowserWindow:
새 브라우저 창을 생성합니다.
매개변수
title
(str): 창 제목. 기본값은 "pylon app"입니다.width
(int): 창 너비. 기본값은 800입니다.height
(int): 창 높이. 기본값은 600입니다.x
(int): 창의 x 좌표. 기본값은 200입니다.y
(int): 창의 y 좌표. 기본값은 200입니다.frame
(bool): 창 프레임 표시 여부. 기본값은 True입니다.context_menu
(bool): 컨텍스트 메뉴 활성화 여부. 기본값은 False입니다.dev_tools
(bool): 개발자 도구 활성화 여부. 기본값은 False입니다.js_apis
(List[PylonAPI]): JavaScript API 목록. 기본값은 빈 리스트입니다.
반환값
BrowserWindow
: 생성된 브라우저 창 객체.
get_windows
def get_windows(self) -> List[BrowserWindow]:
모든 브라우저 창의 목록을 반환합니다.
반환값
List[BrowserWindow]
: 브라우저 창 객체 목록.
show_main_window
def show_main_window(self):
메인 창을 표시합니다.
focus_main_window
def focus_main_window(self):
메인 창에 포커스를 맞춥니다.
show_and_focus_main_window
def show_and_focus_main_window(self):
메인 창을 표시하고 포커스를 맞춥니다.
close_all_windows
def close_all_windows(self):
모든 창을 닫습니다.
quit
def quit(self):
애플리케이션을 종료합니다.
ID별 창 관리
get_window_by_id
def get_window_by_id(self, window_id: str) -> Optional[BrowserWindow]:
ID로 창을 검색합니다.
매개변수
window_id
(str): 검색할 창의 ID.
반환값
Optional[BrowserWindow]
: 찾은 창 객체 또는 None.
hide_window_by_id
def hide_window_by_id(self, window_id: str):
ID로 창을 숨깁니다.
매개변수
window_id
(str): 숨길 창의 ID.
show_window_by_id
def show_window_by_id(self, window_id: str):
ID로 창을 표시하고 포커스를 맞춥니다.
매개변수
window_id
(str): 표시할 창의 ID.
close_window_by_id
def close_window_by_id(self, window_id: str):
ID로 창을 닫습니다.
매개변수
window_id
(str): 닫을 창의 ID.
toggle_fullscreen_by_id
def toggle_fullscreen_by_id(self, window_id: str):
ID로 창의 전체 화면 모드를 전환합니다.
매개변수
window_id
(str): 전체 화면 모드를 전환할 창의 ID.
minimize_window_by_id
def minimize_window_by_id(self, window_id: str):
ID로 창을 최소화합니다.
매개변수
window_id
(str): 최소화할 창의 ID.
maximize_window_by_id
def maximize_window_by_id(self, window_id: str):
ID로 창을 최대화합니다.
매개변수
window_id
(str): 최대화할 창의 ID.
unmaximize_window_by_id
def unmaximize_window_by_id(self, window_id: str):
ID로 창의 최대화를 해제합니다.
매개변수
window_id
(str): 최대화를 해제할 창의 ID.
capture_window_by_id
def capture_window_by_id(self, window_id: str, save_path: str) -> Optional[str]:
ID로 창을 캡처하고 이미지를 저장합니다.
매개변수
window_id
(str): 캡처할 창의 ID.save_path
(str): 캡처한 이미지를 저장할 경로.
반환값
Optional[str]
: 저장된 이미지 파일 경로 또는 None (실패 시).
시스템 트레이
run_tray
def run_tray(self):
시스템 트레이 아이콘과 메뉴를 설정합니다.
set_tray_actions
def set_tray_actions(self, actions):
트레이 아이콘 활성화 동작을 설정합니다.
매개변수
actions
(Dict[QSystemTrayIcon.ActivationReason, Callable]): 활성화 이유와 콜백 함수의 딕셔너리.
show_notification
def show_notification(self, title: str, message: str):
시스템 트레이 알림을 표시합니다.
매개변수
title
(str): 알림 제목.message
(str): 알림 내용.
모니터 정보
get_all_monitors
def get_all_monitors(self) -> List[Monitor]:
연결된 모든 모니터의 정보를 반환합니다.
반환값
List[Monitor]
: Monitor 객체 목록.
get_primary_monitor
def get_primary_monitor(self) -> Monitor:
주 모니터의 정보를 반환합니다.
반환값
Monitor
: 주 모니터의 Monitor 객체.
클립보드
set_clipboard_text
def set_clipboard_text(self, text: str):
텍스트를 클립보드에 복사합니다.
매개변수
text
(str): 복사할 텍스트.
get_clipboard_text
def get_clipboard_text(self) -> str:
클립보드에서 텍스트를 가져옵니다.
반환값
str
: 클립보드의 텍스트.
set_clipboard_image
def set_clipboard_image(self, image: Union[str, bytes, os.PathLike]):
이미지를 클립보드에 복사합니다.
매개변수
image
(Union[str, bytes, os.PathLike]): 복사할 이미지 파일 경로 또는 바이트 데이터.
get_clipboard_image
def get_clipboard_image(self) -> Optional[QImage]:
클립보드에서 이미지를 가져옵니다.
반환값
Optional[QImage]
: 클립보드의 이미지 또는 None (이미지가 없는 경우).
자동 시작
set_auto_start
def set_auto_start(self, enable: bool):
시스템 시작 시 애플리케이션을 자동으로 시작하도록 설정합니다.
매개변수
enable
(bool): True로 설정하면 자동 시작을 활성화하고, False로 설정하면 비활성화합니다.
참고
set_auto_start(True)
는 프로덕션 환경에서만 작동합니다.set_auto_start(False)
는 프로덕션 및 비프로덕션 환경 모두에서 작동합니다.비프로덕션 환경에서
set_auto_start(True)
를 호출하면 경고 메시지가 출력되고 None을 반환합니다.
반환값
bool
: 자동 시작이 성공적으로 활성화되면 True, 비활성화되면 False, 현재 환경에서 지원되지 않으면 None.
is_auto_start
def is_auto_start(self):
애플리케이션이 시스템 시작 시 자동으로 시작되도록 설정되어 있는지 확인합니다.
반환값
bool
: 자동 시작이 활성화되어 있으면 True, 그렇지 않으면 False.
기타
set_icon
def set_icon(self, icon_path: str):
애플리케이션 아이콘을 설정합니다.
매개변수
icon_path
(str): 아이콘 파일 경로.
set_tray_icon
def set_tray_icon(self, tray_icon_path: str):
트레이 아이콘을 설정합니다.
매개변수
tray_icon_path
(str): 트레이 아이콘 파일 경로.
set_tray_menu_items
def set_tray_menu_items(self, tray_menu_items: Dict[str, Callable]):
트레이 메뉴 항목을 설정합니다.
매개변수
tray_menu_items
(Dict[str, Callable]): 메뉴 항목 레이블과 콜백 함수의 딕셔너리.
run
def run(self):
애플리케이션 이벤트 루프를 실행합니다. 이 메서드는 스크립트의 마지막에 실행되어야 합니다.
Last updated