함수를 만들었네요
QString kor(char* str){
QString korStr = QString::fromLocal8Bit(str);
return korStr;
} |
이 함수의 내용은 일단은 문자열이 들어와서, 그것을 QString 으로 만들어서 되돌려 주는 것으로 만들어 봤습니다.
그래서 다음과 같이 사용이 가능하죠!
1번째 방법
kor("나이야");
2번째 방법
char* str = "나이야";
kor(str); |
코딩3
#include <QApplication>
#include <QWidget>
#include <qstring.h>
QString kor(char* str){
QString korStr = QString::fromLocal8Bit(str);
return korStr;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle(kor("나이야"));
window->show();
return app.exec();
} |
출처 : http://onedays.co.kr/90061441570
-------------------------------------------------------------------------------------------------------------------------------------------
방법2
프로그램은 보통 vi 에서 작성하는데 vi 의 한글 코드는 KSC5601 이지만 qt 는 유니코드를 사용한다.
이런 이유로 한글을 바로 출력하면 qt 에서는 깨져서 출력이 된다.
한글을 출력하기 위해서는 3가지 방법이 있다.
1. 매크로를 이용하는 방법
#include <qstring.h>
#define toKor(str) QString::fromLocal8Bit(str)
QString str = "안녕하세요!!";
setCaption(toKor(str));
2. 코덱을 이용하는 방법
#include <qstring.h>
#include <qtextcodec.h>
QString toUniString(QString str) {
QTextCodec * codec = QTextCodec::codecForName("eucKR");
QString localeStr = codec->toUnicode(str);
return localeStr;
}
QString str = "Hello Word!! 안녕하세요!!";
setCaption(toUniString( str));
3. QEucKrCodec 객체 사용
#include <qstring.h>
#include <qeuckrcodec.h>
QEucKrCodec* codec = new QEucKrCodec();
char* string="안녕하세요!!";
QString str = codec->toUnicode(string, strlen(string));
setCaption(str);
출처 : http://blog.naver.com/wonie777?Redirect=Log&logNo=120107116114