개요
QT C++로 프로그램을 작성하면, 타 라이브러리와의 연동을 위해 std::string
을 QString
으로 변환하거나, 그 반대를 수행해야 하는 경우가 잦다.
이를 해결하기 위한 방법은 다음과 같다.
std::string -> QString
QString의 함수 이용
QString
은 std::string
을 QString
으로 변환해주는 함수 QString::fromStdString
함수를 제공한다
사용 예시
std::string str ="Hello, World!";
QString qstr = QString::fromStdString(str);
위의 방법을 사용하면 손쉽게 형 변환이 가능하다.
string pointer 이용
std::string을 QString으로 변경하기 위한, char 배열로 변경한 결과를 QString의 생성자에 넣어주면 된다.
이는 아래의 예제 코드처럼 작성하면 QString으로 형변환된다.
std::string str = "Hello, World!";
QString qstr = QString(str.c_str());
QString -> std::string
QT 프로그램에서 타 라이브러리의 함수를 호출하기 위해선, QString
변수를 std::string
으로 변환해야 하는 경우도 발생한다.
이 역시도 QString
에서 QString
을 std::string
으로 변환해주는 함수 QString::toStdString
을 제공한다.
QString qstr = "Hello, World!";
std::string str = qstr.toStdString();
결론
QT에서 제공하는 QString
클래스는 기존의 C++ 객체와의 호환을 위한 다양한 기능을 제공하며, 이를 통해 효율적인 코딩이 가능하다.
위에 언급한 것 이외에도 QString
의 QString QString::fromLocal8Bit(QByteArray*)
나 QByteArray QString::toLocal8Bit()
같은 함수를 통해 QByteArray
또는 char*
에서 QString
로 혹은 그 반대로 변환할 수 있는 기능을 제공한다.
'Programming > QT' 카테고리의 다른 글
[QT] Windows에서 QOCI (Oricle DB) Driver 빌드 (0) | 2021.09.10 |
---|---|
[QT] QOCI를 이용한 CLOB 데이터 insert중 ORA-03113 (EOF) 오류 발생 대처법 (0) | 2021.06.30 |
[QT] CentOS 7 환경에서 QOCI (Oracle DB) Driver 빌드 (0) | 2021.06.28 |
[QT] static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE (0) | 2019.06.25 |
[QT] QObject::connect: Cannot queue arguments of type 'Type Name' (0) | 2019.06.12 |
[QT] QByteArray를 QJsonValue로 변환하기 (0) | 2019.05.16 |
[QT] QDockWidget의 위치 및 상태 저장 (1) | 2019.05.14 |
[QT] 프로그램 실행 시 모니터 지정 및 풀스크린 실행 (0) | 2019.05.09 |