Qt 한글 출력

Qt 2011. 3. 30. 15:10


함수를 만들었네요

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

Posted by 요지
,