나는이 문제에 대한 단서를 찾기 위해 얼마 동안 결과를 찾지 못했습니다. 그럼, 여기에 간다 ...Windows 용 QT4에서 일반 파일 선택 대화 상자를 만드는 방법
나는 파일 대화 상자 창을 여는 간단한 버튼을 갖고 싶은 응용 프로그램이있다. 기본 창에는 파일을 읽거나 작성/쓰는 다른 버튼이 있습니다 (선택한 기능에 대한 적절한 검사를 한 후). 문제없이 QFileDialog :: getSaveFileName() 함수를 사용했지만 Windows 7에서는 파일이 존재하고 읽기 전용 인 경우이 작업이 실패합니다. 이 문제를 해결하기 위해 getOpenFileName()으로 전환했지만 사용자가 존재하지 않는 파일을 선택하려고하면 파일 대화 상자가 실패합니다 (저장 작업과 관련 없음).
파일 대화 상자에 "새 파일 만들기"아이콘을 추가하거나 파일 대화 상자 창의 오른쪽 클릭 메뉴에 추가하는 방법이 있습니까? 정말 (또 다른) Windows 동작 변경 때문에 응용 프로그램을 다시 작성해야하는 것을 싫어할 것입니다.
"실패"란 무엇을 의미합니까? 프로그램이 실패하거나 Windows에서 실패합니다. 이미 존재하고 읽기 전용으로 표시된 파일에 쓰기를 원한다면 Windows에서 허용하지 않을 것입니다. 이것은 실패가 아니며 성공입니다. 파일을 수정하기 전에 항상 견제와 균형을 유지해야합니다. – RobbieE
실패하면 ok를 클릭하면 대화 상자에 오류가 발생하고 계속할 수 없습니다. getSaveFileName 및 읽기 전용 파일의 경우 오류는 "파일이 읽기 전용이고 선택할 수 없습니다."와 같습니다. 새 파일 및 getOpenFileName의 경우 오류는 "파일이 없습니다."입니다. 두 경우 모두 파일 대화 상자로 돌아가서 원하지 않는 파일을 선택하거나 취소해야합니다. – GrueMaster
여기에 응답이 없으면 (매우 놀랍습니다.) 필자가 직접 파일 대화 상자를 만들어야 할 것 같습니다. 필자는 본질적으로 아무것도하지 않고 호출 함수에 파일 이름을 반환하지만 api 호출을 기반으로 제한을 만드는 두 개의 개별 파일 대화 상자 API 호출을하는 것을 정말 싫어합니다. 동일한 결과를 산출 할 수있는 여러 옵션을 가진 단일 함수로이 값이 훨씬 더 좋습니다. – GrueMaster