파일 대화상자를 엽니다(accept로 거르고 multiple이면 여러 개 선택). disabled면 무시됩니다.
모든 파일은 메타데이터·읽기 가능 여부·accept/maxFiles/maxSize 검증 후 files/formValue에 들어갑니다. 검증 전 selected는 발생하지 않습니다. 거부한 파일은 rejected({file,reason})만 발생시킵니다. validating은 대기 상태입니다. 겹친 요청은 순서대로 처리하고 clear는 늦은 결과를 취소합니다. 단일 교체는 새 파일 검증 성공 후 changed.removed에 이전 파일을 포함하며 별도 removed 신호는 발생시키지 않습니다. 실패한 교체는 이전 파일을 유지합니다.
항목 하나를 빼고 removed, 그다음 changed를 발생시킵니다. 모르는 id는 무시됩니다.
대기열을 비우고 removed에 모든 항목을 담은 changed를 발생시킵니다(removed 시그널은 없음).
항목 하나의 바(0 … 100)와 상태(주어진 것, 또는 진행에서 유도)를 갱신하고 changed를 발생시킵니다.
대기열의 복사본.
index의 항목(또는 null). 인덱스가 없으면 선택된 항목, 없으면 첫 항목, 없으면 null.
그 행을 강조합니다(클릭이 하는 일).
존의 키보드 포커스 켜기 / 끄기.
존의 키보드 포커스 켜기 / 끄기.
상태가 ""인지 조용히
같지만 오류 줄을 드러냄.
"", "valueMissing" 또는 "custom".
custom 상태를 강제 · 해제.
custom 상태를 강제 · 해제.
clear() 하고 touched / submitted / custom 플래그를 끕니다.
시그널
시그널
인자
시점
detail: { files }
파일이 더해짐(대화상자, 드롭, addFiles()). files는 새 항목만.
detail: { file, reason }
검증 실패. files에는 들어가지 않음.
detail: { files, added, removed }
추가·교체·제거·clear·진행 보고. 검증 실패만으로는 발생하지 않음.
detail: { file, files }
파일 하나가 ×나 removeFile(id)로 빠짐. clear()에는 없음.
detail: { files, isValid, status }
존이 키보드 포커스를 얻음 / 잃음. 블러는 필드를 touched로 표시합니다.
detail: { files, isValid, status }
존이 키보드 포커스를 얻음 / 잃음. 블러는 필드를 touched로 표시합니다.
동작
항목
동작 / 조건
모든 파일은 메타데이터·읽기 가능 여부·accept/maxFiles/maxSize 검증 후 files/formValue에 들어갑니다. 검증 전 selected는 발생하지 않습니다. 거부한 파일은 rejected({file,reason})만 발생시킵니다. validating은 대기 상태입니다. 겹친 요청은 순서대로 처리하고 clear는 늦은 결과를 취소합니다. 단일 교체는 새 파일 검증 성공 후 changed.removed에 이전 파일을 포함하며 별도 removed 신호는 발생시키지 않습니다. 실패한 교체는 이전 파일을 유지합니다.
모든 파일은 메타데이터·읽기 가능 여부·accept/maxFiles/maxSize 검증 후 files/formValue에 들어갑니다. 검증 전 selected는 발생하지 않습니다. 거부한 파일은 rejected({file,reason})만 발생시킵니다. validating은 대기 상태입니다. 겹친 요청은 순서대로 처리하고 clear는 늦은 결과를 취소합니다. 단일 교체는 새 파일 검증 성공 후 changed.removed에 이전 파일을 포함하며 별도 removed 신호는 발생시키지 않습니다. 실패한 교체는 이전 파일을 유지합니다.
파일이 존 위로 드래그되는 중.
드래그 중: 파일의 all · some · none이 accept를 통과. 그 밖에는 "".
쉼표로 구분한 규칙: .ext · type/* · type/subtype. 비면 전부.
파일이 더해짐(대화상자, 드롭, addFiles()). files는 새 항목만.
항목 하나의 바(0 … 100)와 상태(주어진 것, 또는 진행에서 유도)를 갱신하고 changed를 발생시킵니다.
selected({ files })는 새 항목만 전달하며, 각각에 대해 업로드가 진행되는 대로 setProgress(id, progress, status)를 부르십시오: progress는 0 … 100으로 잘리고, status는 "ready", "uploading", "success", "error" 중 하나이며 생략하면 진행에 따릅니다(100 → "success", > 0 → "uploading", 0 → 그대로). 행은 상태가 "ready"를 벗어나면 상태 색의 바를 보이고, 항목의 message가 있으면 이름 아래에 보입니다.
selected({ files })는 새 항목만 전달하며, 각각에 대해 업로드가 진행되는 대로 setProgress(id, progress, status)를 부르십시오: progress는 0 … 100으로 잘리고, status는 "ready", "uploading", "success", "error" 중 하나이며 생략하면 진행에 따릅니다(100 → "success", > 0 → "uploading", 0 → 그대로). fieldState는 앱의 결과를 알리기 위해 테두리를 칠하며 — error · warning · success — 컴포넌트는 절대 스스로 설정하지 않습니다.
행은 상태가 "ready"를 벗어나면 상태 색의 바를 보이고, 항목의 message가 있으면 이름 아래에 보입니다. label은 위에, message나 오류 줄은 목록 아래에 놓입니다.
추가·교체·제거·clear·진행 보고. 검증 실패만으로는 발생하지 않음.
항목 하나를 빼고 removed, 그다음 changed를 발생시킵니다. 모르는 id는 무시됩니다.
클릭한 행의 id(setSelectedFile()).
index의 항목(또는 null). 인덱스가 없으면 선택된 항목, 없으면 첫 항목, 없으면 null.
파일 대화상자를 엽니다(accept로 거르고 multiple이면 여러 개 선택). disabled면 무시됩니다.
모든 파일은 메타데이터·읽기 가능 여부·accept/maxFiles/maxSize 검증 후 files/formValue에 들어갑니다. 검증 전 selected는 발생하지 않습니다. 거부한 파일은 rejected({file,reason})만 발생시킵니다. validating은 대기 상태입니다. 겹친 요청은 순서대로 처리하고 clear는 늦은 결과를 취소합니다. 단일 교체는 새 파일 검증 성공 후 changed.removed에 이전 파일을 포함하며 별도 removed 신호는 발생시키지 않습니다. 실패한 교체는 이전 파일을 유지합니다.
name은 기본 "files"이고, SyForm.values()는 대기열(formValue), 즉 url이 있는 파일 항목 목록을 받습니다.
폼이 제출하는 것: files.
존은 최소 96 px 높이이고 필드 너비를 따릅니다: 앱이 width를 정하지 않으면 preferredWidth 360.
앱이 너비를 정하지 않을 때의 너비.
label은 위에, message나 오류 줄은 목록 아래에 놓입니다.
검증·이벤트 순서
항목
동작 / 조건
메타데이터·읽기 가능 여부·타입·개수·크기 검증이 끝난 파일만 files/formValue와 selected에 들어갑니다. validating 동안 pending 파일은 공개하지 않습니다. 겹친 요청은 호출 순서대로 완료하고 clear 후 늦은 결과는 버립니다. hideFiles도 검증을 생략하지 않습니다. 유효한 단일 파일 교체 시 changed.removed로 이전 파일을 알리며, 교체 실패는 이전 파일을 유지합니다. MIME/accept는 확장자 기준이므로 서버의 내용 검증을 대체하지 않습니다.
Qt.labs.folderlistmodel이 없는 호스트는 fileSize(url)이 읽을 수 있는 파일 크기 또는 -1을 반환하는 Theme.fileMetadataProvider를 등록합니다. 제공한 C++/Python 호스트에 이 어댑터가 포함되어 있습니다.