해결된 질문
작성
·
157
2
이렇게 초반에 탭이 3개가 있는 프로세스가 있는 경우
현재는 test2라는 탭이 활성화 되어있습니다.
저는 test라는 탭을 편집하여야하는데
test2를 종료 하더라도 test 탭으로 정확히 이동이 안되는데
혹여 특정 탭에 접근이 가능한 방법이 있을까요?
우선 현재 띄워져 있는 창의 탭 이름을 가져오는 것에는 성공을 하였습니다.
from pyhwpx import Hwp
hwp = Hwp()
documents = hwp.XHwpDocuments
for i in range(documents.Count):
doc = documents.Item(i)
doc_name = doc.FullName if doc.FullName else "저장되지 않은 문서"
print(f"문서 {i}: {doc_name}")
if 'test.hwpx' in doc_name:
selected_doc = doc
selected_num = i
break
if 'selected_doc' in locals():
# 해당하는 문서가 탭에 존재하면 해당 문서를 편집할 수 있게 선택
만약 탭이름을 활용해서 선택하는 방법이 없다면
hwp.Run("WindowNextTab")을 통하여 현재 탭의 이름과 하나하나 비교하여 일치하는 경우까지 이동하게 하는 방식이 나을지 아니면 탭에 접근하는 방법이 있을지 질문드립니다.
답변 1
2
탭이 n개 열려 있는 경우
hwp.XHwpDocuments.Item(n-1).SetActive_XHwpDocument() 메서드로
n번째 탭을 활성화하실 수 있습니다. (0부터 시작합니다.)
다만 유의하실 점은,
① 내부적으로 SetActive_XHwpDocument() 메서드는 새 창과 새 탭을 구분하지 않으므로
여러 개의 창이 열려 있는 경우에는 인덱스에 신경을 쓰셔야 합니다.
(hwp.Path나 Name 등으로 재확인하시는 것을 추천드립니다.)
② 그리고 혹시라도 마우스나 키보드로 (수동으로) 특정 탭을 활성화하셨다면
SetActive~ 메서드와 상관없이 최근에 활성화했던 한/글 문서로 포커스가 옮겨갑니다.
③ SetActive_XHwpDocument 메서드 실행 시점에 포커스가 한/글로 옮겨갑니다.
만약 파이참이나 VSCode 등으로 실시간 코딩을 하고 계신다면, 포커스에 유의하시기 바랍니다.
이밖에도 몇 가지 버그가 있기는 하지만, TMI인 것 같아 여기서 줄입니다.
도움이 되었길 바랍니다^^