본문 바로가기
목차
Python/PySide PyQt

qt.conf

by ds31x 2026. 3. 11.
728x90
반응형

qt.conf 또는 qt6.conf
Qt6에서 참조해야하는 여러 path 등을 지정하는데
사용되는 전용 설정 파일임

관련 공식 문서 및 개요


qt.conf / qt6.conf 개념

  • Qt 라이브러리에 내장된 기본 경로(hard-coded paths)를 재정의하는 설정 파일임
  • 해당 파일 존재 시 Plug-in, QML, Transloations(번역 파일) 등을 내장 경로 대신 해당 파일의 관련된 키에 정의된 path에서 탐색함
  • INI 형식이며 주요 로드 위치는 다음과 같음
    • 실행 파일 디렉토리
    • Resources 디렉토리
    • Qt 리소스 시스템 (.../qt/etc/qt.conf)

참고: INI 형식이란?

INI 파일은 Initialization 의 유래된 이름.
key-value 기반 텍스트 설정 파일로
초기 Windows의 설정파일로 많이 사용되던 방식임.

설정 값은 section(square bracket으로 싸임) 아래에 key=value 형태로 저장된다.
depth가 1로 한정(nested structure를 허용하지 않음)되다보니 최근엔 JSON이나 YAML이 보다 많이 사용되는 추세임.
하지만 단순한 설정파일로는 가장 널리 사용되는 형식 중 하나임.

[Paths] 섹션

[Paths] section 은 `key = path` 형태로 설정됨:

  • 모든 path는 기본적으로 Prefix 기준 relative path 로 해석
  • 단 value 부분에 absolute path 지정 시 Prefix와 무관하게 해당 path를 그대로 사용함.
  • Qt 6.8 버전부터는 한 key 에 여러 경로를 쉼표(,)로 구분하여 지정 가능함.

[Paths] section의 주요 키는 다음과 같음:

  • Prefix:
    • Qt 설치 기본 루트 경로
    • 타 경로 항목의 기준이 됨
  • Documentation:
    • API 문서 파일이 위치하는 디렉토리임
  • Headers:
    • C++ 헤더 파일 위치.
    • 컴파일 및 도구 탐색에 사용됨
  • Libraries:
    • 공유/정적 라이브러리 위치
    • 런타임 로드 시 참조됨
  • LibraryExecutables:
    • 내부 헬퍼 실행 프로그램 (e.q. QtWebEngineProcess) 위치임
    • 전통적으로 사용자가 실행하지 않지만, 내부적으로 실행해야하는 보조 실행 파일(=내부 헬퍼 실행 프로그램)을 저장하는 위치는 다음과 같음:
      • Unix 계열(Linux, macOS)은 libexec : /usr/libexec
      • Windows 는 bin : 실행파일과 dll파일들이 같은 디렉토리에 위치함.
  • Binaries:
    • qmake, designer 등의 실행 파일 위치임
  • Plugins:
    • 플랫폼 및 이미지 포맷 플러그인 탐색 경로임
  • QmlImports:
    • QML 모듈 로드 시 사용하는 경로임.
    • QML은 JSON과 유사한 문법을 가진 Qt 프레임워크 전용 선언형 언어로서
      동적인 애니메이션과 유연한 UI를 빠르고 쉽게 구현할 수 있게 해 줌.
  • ArchData:
    • 아키텍처 의존 데이터 및 플랫폼 파일 저장 위치임
  • Data:
    • 아키텍처 독립 데이터 및 리소스 위치임
  • Translations:
    • UI 번역 파일(.qm) 위치임
  • Examples:
    • 예제 프로젝트 설치 위치임
  • Tests:
    • 테스트 프로그램 설치 위치임
  • Settings:
    • 설정 파일 및 시스템 설정 참조 경로임

Example:

[Paths]
Prefix = /Users/dsaint31/miniconda3/envs/pyside6
Documentation = /Users/dsaint31/miniconda3/envs/pyside6/share/doc/qt6
Headers = /Users/dsaint31/miniconda3/envs/pyside6/include/qt6
Libraries = /Users/dsaint31/miniconda3/envs/pyside6/lib
LibraryExecutables = /Users/dsaint31/miniconda3/envs/pyside6/lib/qt6
Binaries = /Users/dsaint31/miniconda3/envs/pyside6/lib/qt6/bin
Plugins = /Users/dsaint31/miniconda3/envs/pyside6/lib/qt6/plugins
QmlImports = /Users/dsaint31/miniconda3/envs/pyside6/lib/qt6/qml
ArchData = /Users/dsaint31/miniconda3/envs/pyside6/lib/qt6
Data = /Users/dsaint31/miniconda3/envs/pyside6/share/qt6
Translations = /Users/dsaint31/miniconda3/envs/pyside6/share/qt6/translations
Examples = /Users/dsaint31/miniconda3/envs/pyside6/share/doc/qt6/examples
Tests = /Users/dsaint31/miniconda3/envs/pyside6/tests

같이 보면 좋은 자료들

2024.01.07 - [CE] - [Term] JSON (JavaScript Object Notation) :

 

[Term] JSON (JavaScript Object Notation) :

JSON (JavaScript Object Notation)은JavaScript에서 Object Notation (객체 표기)의 목적으로 제안되었고,JavaScript 언어의 subset 임.하지만, 오늘날 JSON은 프로그램들 간에 데이터를 교환에 사용되는 대표적인 Light-

ds31x.tistory.com

2024.01.07 - [CE] - [Term] YAML (Yet Another Markup Language)

 

[Term] YAML (Yet Another Markup Language)

Human-friendly Unicode based Data Serialization Language인간친화적인 유니코드 기반의 데이터 직렬화 언어 공식적인 이름은 사실 "YAML Ain't Markup Language" 이지만개인적으론 "Yet Another Markup Language" 이 더 와닿는

ds31x.tistory.com

 

728x90