2014-12-19 6 views
0

Qt 위젯 응용 프로그램을 작성했습니다. 파일 메뉴에서 MS 워드 문서를 사용자 설명서로 삽입하려고합니다. 그것을 할 방법이 있습니까? Qt 도움말과 다양한 블로그를 확인했지만 그 중 누구도 나에게 명확한 해결책을 제시하지 못했습니다.Qt GUI 응용 프로그램에서 MS 워드 문서를 첨부하는 방법은 무엇입니까?

+1

특별한 이유가 있나요 사용 설명서에 MS Word 문서를 사용하십니까? 일반 텍스트 또는 HTML 형식을 사용하지 않는 이유는 무엇입니까? – vahancho

+0

@vahancho 귀하의 회신에 감사드립니다. 이미 이미지와 모든 것을 포함하는 .doc 매뉴얼을 만들었습니다. 그래서 콘텐츠를 다시 사용하고 싶었습니다. .doc를 곧바로 삽입 할 수있는 방법이 있습니까? –

+0

Qt는 COM 개체를 위젯에 포함하는 것을 지원하지만 (QAxObject 설명서 참조)이 작업에 소요되는 노력은 설명서를 다른 "휴대용"형식으로 변환하는 것 이상의 의미를 갖습니다. – vahancho

답변

3

수동 인 경우 MS Word을 앱에 임베드 할 필요가 없습니다. 컴퓨터에 Word으로 필요한 문서를 열려고 시도했을 수 있습니다. 다음 코드를 사용해보십시오 :

QDesktopServices::openUrl(QUrl("file:///G:/tst.docx")); 

그냥 필요한 경로를 설정하십시오. As doc said:

URL이 다음 대신 웹 브라우저의 적절한 응용 프로그램 열립니다 로컬 파일 (즉, URL이 방식은 "파일"입니다)에 대한 참조 인 경우.

+0

감사합니다 @ 체르노빌, 최소한의 노력으로 내 문제를 해결했습니다 :) –

1

응용 프로그램 실행 파일에 임베드하려면 .docx 파일을 리소스 파일로 삽입하기 만하면됩니다. 자원에서 DOCX 파일을 열려면 먼저 응용 프로그램 디렉토리 경로에 예를 들어 어떤 위치에 복사해야합니다

QFile HelpFile("qrc:/myFile.docx");; 
HelpFile.copy(qApp->applicationDirPath().append("/myFile.docx")); 

다음은 당신이하여 열 수 있습니다 :

QDesktopServices::openUrl(QUrl::fromLocalFile(qApp->applicationDirPath().append("/myFile.docx"))); 
+1

좋은 방법은 배포 고통. 사용자가 애플리케이션 디렉토리 (예 : Linux)에 대한 쓰기 권한을 가질 것으로 예상 할 수 없으므로 대신 임시 경로를 사용합니다. –

+0

@SimonWarta 당신 말이 맞아요. 'QStandardPath'에 의해 쓰기 가능한 위치를 사용하는 것이 낫습니다. – Nejat

관련 문제