Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 대소문자 차이)
요즘은 대게 Qt 5.x를 사용합니다. 그래서 4.x 이하의 예제를 가져다가 사용하다 보면 에러가 종종 뜨지요. 이번 포스팅도 그런 경우와 연관된 내용입니다. ![]()
Qt 3.0 버전 이하에선 아래와 같은 소스도 허용이 되었습니다.
1 2 | char char_tmp = message_[0].toUpper(); message_[0] = char_tmp; | cs |
그렇지만 이제는 QString에서 char을 받아들이는 것도, char에 QString 데이터 일부를 할당하는 것 조차도 허용하지 않습니다.
[Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 차이)]
위의 그림처럼 초기화할 수 없다는 에러 메시지를 볼 수 있습니다.
에러 메시지
- cannot convert 'QString' to 'char' in initialization
그래서 이전의 코드는 사용할 수 없습니다.
Qt5 이후의 버전에서는 아래와 같이 사용하시면 됩니다.
1 2 3 4 5 6 7 | QString ToUpper(const QString &str) { QString tmp = str; tmp = tmp.toLower(); tmp[0] = str[0].toUpper(); } | cs |
또는
1 2 3 4 5 6 7 8 | QString ToUpper(const QString &str) { QString message; for (int i = 0; i < tmp.size(); i++) { message.apped(tmp.at(i).toUpper()); } } | cs |
임시 변수에 문자열을 담아두고 하나씩 빼 와야 합니다.
좀.... 비효율적인 부분인데 더 나은 소스는 없으려나요. 그래도 간단하긴 간단하네요.
Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 대소문자 차이)
written by vicddory