C.W.K.
Stream
Lesson 02 of 06 · published

창 설정 & label

~11 min · tauri, windows, labels, config

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"label은 절대 안 바뀌는 창의 이름이야. title은 언제든 갈아입는 의상이고."

설정 속 정적 창

tauri.conf.jsonapp.windows 배열은 실행부터 존재하는 창을 선언해. 각 항목이 초기 title, 크기, 동작을 정해 — 그리고 결정적으로 label. 기본 스캐폴드는 main label 창 하나를 줘. 여기서 더 추가할 수 있어(스플래시, 상시 툴바) Rust 없이, 그리고 걔넨 앱이랑 같이 열려.

label = 신원, title = 표시

둘을 헷갈리지 마. label은 안정적이고 고유한 문자열 id야 — main, settings, splash — 절대 안 바뀌고 모든 API가 창을 가리키는 방법이야: get_webview_window("settings"), emit_to("settings", …). title은 타이틀바의 사람용 텍스트야. 런타임에 바뀔 수 있고 고유하지 않아. 창은 항상 label로 식별해. title로 노리는 건 터지길 기다리는 버그야.

설정 vs 코드: 언제 뭘

항상 존재하는 창(메인 창)엔 설정을 써. 사용자 동작이나 데이터에 따라 달린 창(열린 파일당 문서 창, 요청 시에만 뜨는 설정 창)엔 런타임 생성을 써. 흔한 패턴: main은 설정에 선언하고, 나머지는 Rust에서 만들어. 설정에 창을 선언하되 숨겨서 시작하고 준비되면 show()할 수도 있어 — 스플래시-그다음-메인 시퀀스에 편해.

Code

설정에 창(과 label) 선언·json
// tauri.conf.json — 정적으로 선언된 창 둘, 각자 label 있음.
{
  "app": {
    "windows": [
      { "label": "main", "title": "My App", "width": 1100, "height": 720 },
      { "label": "splash", "url": "splash.html", "width": 400, "height": 300,
        "decorations": false, "visible": true }
    ]
  }
}
label이 코드에서 창에 닿는 방법·rust
use tauri::Manager;

// label로 어떤 창이든 찾기 — setup, command, 어디서나.
fn close_splash_show_main(app: &tauri::AppHandle) {
    if let Some(splash) = app.get_webview_window("splash") {
        let _ = splash.close();
    }
    if let Some(main) = app.get_webview_window("main") {
        let _ = main.show();
        let _ = main.set_focus();
    }
}

External links

Exercise

메인 창에 tauri.conf.json에서 명시적 label을 줘(없으면), 그다음 label은 고정한 채 창 title을 런타임에 토글하는 command를 써. title은 바뀌는데 get_webview_window(label)은 여전히 찾는지 확인해. label/title 분리를 직접 느낀 거야.
Hint
win.set_title("new title")는 표시를 바꿔; get_webview_window에 넘기는 label은 절대 안 바뀌어. 그 분리가 핵심 전부야 — 신원 vs 표현.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.