15 탭(Tab)

Estimated reading: 2 minutes 20 views

이 문서에서는 AutoHotkey v2의 Tab 컨트롤 생성 및 제어에 대해 학습합니다. 초보부터 고급 사용자까지 다양한 수준의 예제를 통해 Tab 컨트롤 추가, 탭 전환, 동적 제어, 이벤트 처리 등의 고급 기능을 다룹니다.

  • 초급: 기본 Tab 컨트롤 생성, 탭 전환 및 탭 내부에 컨트롤 추가 방법을 학습합니다.
  • 중급: Tab의 스타일 변경, 탭 추가 및 동적 제어 기능을 학습합니다.
  • 고급: 동적 탭 추가 및 삭제, 조건에 따른 탭 전환, 탭 내부의 컨트롤 동적 제어 등의 고급 기능을 학습합니다.

초급 (기본 사용법)

목표: 기본적인 Tab 컨트롤 생성 및 탭 전환, 탭 내부에 컨트롤 추가 방법을 학습합니다.

기본 Tab 컨트롤 생성

기본 Tab 컨트롤을 생성하여 탭을 추가합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 1|탭 2|탭 3)
MyGui.Show(w400 h300)

설명

  • MyGui.Add(“Tab2”, “w300 h200”, “탭 1|탭 2|탭 3”): Tab2 컨트롤을 생성하여 탭 1, 탭 2, 탭 3을 추가합니다.
  • w300 h200: 탭 컨트롤의 너비를 300px, 높이를 200px로 설정합니다.

탭 내부에 컨트롤 추가

탭 내부에 컨트롤을 추가합니다.

MyGui := Gui()
MyGui.Add(Tab2, w300 h200, 탭 1|탭 2|탭 3)
MyGui.Add(Text, x20 y50, 탭 1에 추가된 텍스트)
MyGui.Add(Tab)  ; 다음 탭으로 이동
MyGui.Add(Button, x20 y50, 탭 2에 추가된 버튼)
MyGui.Show(w400 h300)

설명

  • MyGui.Add(“Text”, “x20 y50”): 탭 1텍스트 컨트롤을 추가합니다.
  • MyGui.Add(“Tab”): 탭 2로 전환합니다.
  • MyGui.Add(“Button”, “x20 y50”): 탭 2버튼 컨트롤을 추가합니다.

Tab의 크기 및 위치 조정

Tab 컨트롤의 위치와 크기를 설정합니다.

MyGui := Gui()
MyGui.Add(Tab2, x20 y20 w250 h150, 탭 A|탭 B)
MyGui.Show(w400 h300)

설명

  • x20 y20: X=20, Y=20 좌표에 Tab 컨트롤을 배치합니다.
  • w250 h150: 너비 250px, 높이 150px로 컨트롤 크기를 설정합니다.

중급 (Tab 컨트롤 스타일 설정)

목표: Tab의 스타일을 변경하고, 탭 추가 및 동적 탭 제어 기능을 학습합니다.

탭의 기본 탭 선택 상태 설정

탭의 기본 선택 상태를 설정합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 A|탭 B|탭 C)
MyTab.Value := 2  ; 기본 선택된 탭을 2번째 탭으로 설정
MyGui.Show(w400 h300)

설명

  • MyTab.Value := 2: 탭 B를 기본 선택 상태로 설정합니다.

동적 탭 추가

버튼 클릭으로 탭을 동적으로 추가합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 1|탭 2)
MyGui.Add(Button, gAddNewTab, 탭 추가)
MyGui.Show(w400 h300)

AddNewTab() {
    Static TabCount := 2
    TabCount++
    MyTab.Opt(+Tab TabCount)
}

설명

  • Static TabCount: 클릭할 때마다 탭의 개수를 증가시킵니다.
  • MyTab.Opt(“+Tab” TabCount): 새로운 탭을 동적으로 추가합니다.

탭의 스타일 변경

탭 컨트롤의 스타일을 변경합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab3, w300 h200, 탭 X|탭 Y)
MyGui.Show(w400 h300)

설명

  • Tab3: 탭의 스타일을 Tab3으로 변경하여 평평한 스타일의 탭을 생성합니다.

고급 (Tab 컨트롤 제어 및 이벤트 추가)

목표: Tab 컨트롤의 상태를 동적으로 제어하고, 조건에 따른 작업을 수행합니다.

현재 선택된 탭 확인

현재 선택된 탭의 값을 확인합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 1|탭 2|탭 3)
MyGui.Add(Button, gCheckTab, 선택된 탭 확인)
MyGui.Show(w400 h300)

CheckTab() {
    MsgBox 현재 선택된 탭:  MyTab.Value
}

설명

  • MyTab.Value: 현재 선택된 탭의 인덱스를 반환합니다.

조건에 따른 탭 전환

조건에 따라 탭을 전환합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 1|탭 2|탭 3)
MyGui.Add(Button, gChangeTab, 조건에 따라 탭 전환)
MyGui.Show(w400 h300)

ChangeTab() {
    If (MyTab.Value = 1) 
        MyTab.Value := 2
    Else 
        MyTab.Value := 1
}

설명

  • If (MyTab.Value = 1): 현재 탭이 1이면 탭 2로 전환합니다.

탭 내의 컨트롤 초기화

탭 내부의 컨트롤 값을 초기화합니다.

MyGui := Gui()
MyGui.Add(Tab2, w300 h200, 탭 1|탭 2)
MyGui.Add(Edit, vInput1)
MyGui.Add(Tab)  ; 탭 2로 전환
MyGui.Add(Edit, vInput2)
MyGui.Add(Button, gResetTab, 초기화)
MyGui.Show(w400 h300)

ResetTab() {
    GuiControl,, Input1, 
    GuiControl,, Input2, 
}

설명

  • GuiControl,, Input1: 탭 1의 Edit 컨트롤의 내용을 초기화합니다.
  • GuiControl,, Input2: 탭 2의 Edit 컨트롤의 내용을 초기화합니다.

동적 탭 삭제

탭을 동적으로 삭제합니다.

MyGui := Gui()
MyTab := MyGui.Add(Tab2, w300 h200, 탭 1|탭 2|탭 3)
MyGui.Add(Button, gDeleteTab, 탭 삭제)
MyGui.Show(w400 h300)

DeleteTab() {
    MyTab.Opt(-Tab3)  ; 3번째 탭 삭제
}

설명

  • MyTab.Opt(“-Tab3”): 3번째 탭을 삭제합니다.

향후 추가 예정

  • 동적 탭 생성 및 삭제
  • 탭의 상태를 파일로 저장 및 복원
  • 탭 내부의 컨트롤과 상호작용 추가
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments