2011-08-01 7 views
0

XML 파일 (* .xml)로 정의 된 xml 필터와 함께 QFileDialog :: getOpenFileName을 사용하려고합니다.)를 사용하여 사용자에게 XML 파일을 선택하도록 요청합니다.C++/QT - QFileDialog :: getOpenFileName 필터 * .xml은 이름에 일본어 문자가 포함 된 파일을 사용하지 않습니다.

그러나 이름에 일본어 문자가 포함 된 파일 (예 : 라드 크리프 .xml)이있는 경우 파일이 사용 중지 된 것으로 표시되어 사용자가 선택할 수 없습니다. a.xml, b.xml과 같은 기타 파일은 선택 가능으로 표시됩니다.

왜 이런 일이 발생합니까? 이 문제를 해결할 수있는 방법이 있습니까?

감사합니다.

+1

오타입니다. 맞습니까? 'tr ("XML 파일 (* .xml)")' – koan

+0

네가 맞다. – Anonymous

+0

나는 당신이 당신의 문제로 더 나아갈 수 있도록 파일 다이얼로그 코드 전체를 게시 할 필요가 있다고 생각한다. – koan

답변

1

파일은 "ラ ド ク リ フ .xml"이 아니며 "라 도쿠 리프 .xml"이 아닙니다. 파일 이름의 끝에있는 xml은 ASCII가 아닙니다. 그들은 전체 너비 로마 문자, 즉 UniCode codepoints 0xFF00-0xFFEF입니다.

수정 사항은 끝에 .xml을 입력 할 때 ASCII 입력으로 다시 전환하거나 일본어 용 소프트웨어가 현지화되어있는 경우 필터 목록에 전체 폭 "* .xml"을 추가하는 것입니다.

+0

Clever !! 고마워,하지만이 시도 직후 답변으로 이것을 확인합니다 :) – Anonymous

+0

불행히도,이 아니에요 - 나는 내 터미널의 인코딩을 ASCII로 변경하고 다시 확인했습니다. 가타카나의 파일 이름 부분이 비정상적으로 표시되었지만 .xml은 .xml 그대로 남았으므로 .xml이 전체 ​​너비 .xml이 아니어야합니다. – Anonymous

+0

또한 답변을 확인하기 위해 필자는 필터 ("\ *. \ *", "*")를 통과 시켰으며 필터를 통과시키지 않았습니다.이 경우 모든 파일은 QFileDialog에 따라 표시되어야합니다. 그러나 아무 소용이 없습니다. 이 파일들은 아직 선택 가능하지 않았습니다! 나에게 맥에서 Qt 버그처럼 보인다. – Anonymous