2016. 11. 10. 20:09ㆍ제2외국어/QT
QString을 사용하면서 많이 사용되었던 부분들 정리합니다.
계속 추가해 나가겠습니다.
1. QString conver to char*
: 작업할 때 은근히 C라이브러리들이 많아서 C소스에서 QT로 사용할 때 또는 반대로, QString를 char* 로 변환하는 경우가 빈번히 발생
QString의 자체 함수만으로는 제대로 안 되는 경우가 발생해서 찾아봤습니다.
- QString 의 자체 함수를 사용하는 방식
QString qstrTest = "test"; char *chrTest = qstrTest.toStdString().c_str();
- QByteArray를 사용하는 방식(1)
QString qstrTest = "test"; QByteArray byteArray = qstrTest.toUtf8(); const char *chrTest = byteArray.constData();
- QByteArray를 사용하는 방식(2)
QString qstrTest = "test"; QByteArray byteArray = qstrTest.toLocal8Bit(); char *chrTest = byteArray.data();
참고 URL : http://doc.qt.io/qt-4.8/qstring.html
Keyword : Converting Between 8-Bit Strings and Unicode Strings
QString provides the following four functions that return a
To convert from one of these encodings, QString provides fromAscii(), fromLatin1(), fromUtf8(), and fromLocal8Bit(). Other encodings are supported through the QTextCodec class. |
2. QString 에 들어있는 문자열의 라인수 확인하기
: 파일에 있는 데이터 또는 여러 문자열을 합치는 경우 등 QString 안에 있는 문자열의 Line 수를 체크할 필요가 있을 때 사용
- QStringList 와 split를 활용한 콤비네이션!
QString qstrTest = readFile(Path); // 특정 함수를 통해 파일을 읽어들인다고 가정 QStringList qstrList_Lines = qstrTest.split('\n'); // QStringList 를 통해 '\n' 기준으로 위에서 읽어들인 문자열을 자릅니다! qDebug() << qstrTest; // 문자열 확인 qDebug() << "Count : " << qstrList_Lines.count(); // '\n' 으로 제대로 잘려져있는지 확인
for(int i=0; i<qstrList_Lines.count(); i++)
{
qDebug() << "[" + i + "] " + qstrList_Lines.at(i); // 기존 문자열과 비교해보기
}
'제2외국어 > QT' 카테고리의 다른 글
[Error]conversion from ‘int64_t {aka long int}’ to ‘QVariant’ is ambiguous (0) | 2017.06.01 |
---|---|
[QT]greaterThan(QT_MAJOR_VERSION, 4): QT += widgets (0) | 2016.12.01 |
[QT]파일 확인하기 (0) | 2016.08.12 |