Programming/QT
[QT] C++ std::string과 QString 간의 문자열 형 변환 방법
후유증
2019. 6. 18. 13:34
개요
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
로 혹은 그 반대로 변환할 수 있는 기능을 제공한다.