2014-12-03 4 views
-1

CentOS 7에서 QT 프로젝트를 빌드합니다. /etc/locale.conf를 'zh_CN.gb2312'로 변경했습니다.그런 다음 'DontUseNativeDialog'가없는 QFiledialog가 지저분한 코드가 발생합니다.

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")); 
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312")); 
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312")); 

어떻게 수정 : 나는 파일을 선택하는 'DontUseNativeDialog'없이 QFiledialog 열

는 대화 상자에서 파일 이름 표시 심지어 내가이) (주 코드에 다음을 추가, 지저분한 코드를 발생 이 문제 ? 내 응용 프로그램은 영어 또는 중국어를 지원할뿐만 아니라 리눅스의 모든 언어와 호환되어야합니다. QT는 시스템 언어를 자동으로 확인할 수 있어야하지만 어떻게해야합니까?

감사합니다.

+1

_messy_를 ​​(를) 지정할 수 있습니까? 화면 캡처를 포함 할 수 있습니까? – Bowdzone

답변

0

이것은 UTF-8 환경에 있었고 파일 이름을 utf-8 스타일로 저장했을 때 비밀 번호가
일 수 있습니다. CGB2312 환경으로 변경하면 utf-8이 glibc에 의해 GB2312에서 해석되므로 지저분한 코드가 나타납니다. 지저분한 코드 Qt QFiledialog에서는 그렇지 못하지만 bshell에서는 그렇지 않습니다. QT 기본 GUI 창과 bshell은 모두 glibc 기반입니다.

gnome은 특별히이 파일을 처리 할 수 ​​있으므로 파일 이름의 인코딩을 해석 할만큼 똑똑하기 때문에 gnome 파일 찾아보기 툴킷에서 이름은 UTF-8 및 GB2312 환경 아래에 바로 표시됩니다.