2009-04-10 4 views
1

My Qt 애플리케이션은 한 번에 하나의 "프로젝트"를 생성/열기/저장할 수 있어야합니다. 파일에서 프로젝트의 설정을 저장하는 고통없는 방법은 무엇입니까? 그것은 XML 또는 덜 무서운 것이어야합니까?Qt 애플리케이션에서 "프로젝트 파일"을 어떻게 처리합니까?

물론 파일에 저장되는 데이터는 시간이 지나면 변경 될 수 있습니다.

내가 필요한 것은 QSettings이지만 프로젝트에 묶여 있습니다. 전체 응용 프로그램이 아니라 내 응용 프로그램에 있습니다.

+0

projcet 설정이란 무엇입니까? Qt는 프로젝트/Makefile만으로 충분하지 않습니까? – dirkgently

+0

그가 의미하는 것 : 그의 프로그램은 다른 프로젝트를 사용합니다. 그는 이것을 구할 수있는 가장 좋은 방법을 알고 싶어합니다. – RvdK

+0

@PoweRoy, 내가 원하는 건 –

답변

1

QSettings를 사용하여 데이터를 특정 .ini 파일에 저장할 수 있습니다. 문서에서 :

때때로 특정 파일이나 레지스트리 경로에 저장된 설정에 액세스하고 싶습니다. 모든 플랫폼에서 INI 파일을 직접 읽으려면 파일 이름을 첫 번째 인수로 사용하고 QSettings :: IniFormat을 두 번째 인수로 전달하는 QSettings 생성자를 사용할 수 있습니다. 예 : Q 설정 설정 ("/ home/petra/misc/myapp.ini", QSettings :: IniFormat);

1

사용자가 편집 할 수 있도록하려면 대부분의 Linux 응용 프로그램 에서처럼 한 줄씩 = 한 줄씩 일반 텍스트를 사용해야합니다.

그러나이 설정은 전체 프로젝트의 데이터가 아니라 복잡한 구조가 필요합니다.

어쩌면 JSON?

1

프로 XML : 당신은 편집기에서 당신은 그 안에 어떤 언어로 문자열의 모든 종류를 저장할 수

  • (유니 코드 지원)이 한 번 봐 가질 수

    • 그것은
    • 내용을 간단
    • 하나 이상의 프로그램이 동일한 XML을 읽을 수 있습니다.
    • XML을 사용하여 데이터를 쉽게 구조화 할 수 있습니다. 예를 들어 키/값 목록을 사용하면 나무와 같은 구조를 저장할 때 문제가 발생합니다.

    콘트라 XML

    • 결과는
    • 대부분의 프로그래밍 언어 (특히 오래된 C++와 같은 것들) XML에 대한 좋은 지원이없는 약간 부풀어있다. 이전 XML API는 모든 언어 (최소 공통 분모)로 구현 될 수있는 방식으로 설계되었습니다. '그런가 말했다.
    • "인코딩"(또는 "charset")의 개념을 이해해야합니다. 언뜻보기에는 이것이 사소한 것처럼 보일 수 있지만, 당신을 물 수도있는 숨겨진 문제가 있습니다. 따라서 항상 움라우트와 간지 (일본어 문자)로 코드를 테스트하여 올바르게 작성했는지 확인하십시오.
    +1

    Qt는 아주 좋은 XML API를 가지고있다. http://doc.trolltech.com/4.0/qtxml.html. – Sharique

    +2

    이 API는 내 책에서 "매우 우수한 XML API"가 아닌 DOM을 기반으로합니다. 나는 "html.body.p [3] .text = '...'과 같은 생각을 선호합니다.getChildElement ("body"). getChildElements ("p"). get (3) .setText ("..."); –

    관련 문제