Notice
Recent Posts
Recent Comments
Link
It won't hurt to try
[C++/윈도우프로그래밍응용]33. 국제화 본문
Qt의 정보 표시 위젯
1. 정보 표시 관련 위젯
사용자에게 정보 표시를 위해서 사용
문자열이나 숫자, 그림 또는 진행 상태 등의 정보를 표시
- Qt에서는 QLabel, QLCDNumber, QProgressBar, QTextBrowser 위젯 등을 제공
- QLabel과 QLCDNumber 위젯 : QFrame 클래스를 상속
- QProgressBar 위젯 : QWidget 클래스를 상속
- QTextBrowser 위젯 : QTextEdit 클래스를 상속
2. QLabel 위젯
레이블(Label) 형태로 사용자에게 정보를 표시할 때 사용
문자열(String)뿐만 아니라 픽스맵(Pixmap), 그림(Picture), 영화(Movie)의 여러 형식의 정보들을 표시
- setText() 메소드 : QString 데이터 형의 문자열(unicode기반)
- setPixmap() 메소드 : QPixmap 클래스의 이미지(bmp, jpg, png, ...)
- setPicture() 메소드 : QPicture의 QPainter의 명령 리스트(윈도우에 그림을 그릴때)
- setMovie() 메소드 : QMovie 클래스의 움직이는 이미지(gif, ...)
3. QLCDNumber 위젯
LCD 형태로 숫자와 관련된 문자를 표시
10진수/16진수 숫자와 다양한 기호 지원
2진수, 10진수, 8진수, 16진수 모드로 숫자 표시
- 모드를 변환하면 자동으로 값을 변환
- setMode(Mode) 메소드 / setBinMode() / setDecMode() / setHexMode() / setOctMode() 메소드
- enum Mode { Hex, Dec, Oct, Bin }
main.cpp를 수정
출력 모드를 2진수, 8진수, 10진수, 16진수로 변경해보세요.
10진수
#include <QApplication>
#include <QLCDNumber>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLCDNumber *lcd = new QLCDNumber();
lcd->setDecMode();
lcd->setSegmentStyle(QLCDNumber::Flat);
lcd->display(2002);
lcd->show();
return a.exec();
}
2진수
4. QProgressBar 위젯
전체 단계를 정의해서 단계별로 진행 사항을 표시
바 형태로 현재의 진행 결과처럼 숫자의 값을 도식화하여 보여줄 때 사용
- 기본 범위 : 0~100
- 전체 단계 설정 : QProgressBar::setRange() 메소드
- 현재의 값 설정 : QProgressBar::setValue() 메소드
수직이나 수평의 방향 설정 가능
- QProgressBar::setOrientation() 메소드
다양한 스타일 제공
main.cpp를 수정
#include <QApplication>
#include <QProgressBar>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QProgressBar *progBar = new QProgressBar();
progBar->setValue(20);
progBar->show();
return a.exec();
}
5. QTextBrowser 위젯
QTextEdit 클래스를 상속
문서를 구성할 때 기본적으로 사용하는 하이퍼텍스트(HyperText)를 표시할 때 사용
- 링크(HTML의 a태그)를 마우스 클릭으로 HTML 문서를 이동 가능
- HTML 문서에 링크(Anchor)가 있을 때 backward(), forward(), home(), reload() 메소드로
인터넷 탐색에서의 문서 탐색과 같은 기능들을 수행
리치 텍스트 표시
- HTML 문서의 태그를 그대로 표시 : QTextEdit::setPlainText() 메소드
- 태그를 HTML 서식으로 바꿔서 표시 : QTextEdit::setHTML() 메소드
HTML 문서 필요
index.html
<html>
<body>
<h1>HelloWorld</h1><br>
<a href=help.html>Help</a>
</body>
</html>
help.html
<html>
<body>
<h1>HelloWorld</h1><br>
<a href=index.html>Index</a>
</body>
</html>
main.cpp를 수정
#include <QApplication>
#include <QTextBrowser>
#include <QUrl>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextBrowser *tb = new QTextBrowser();
tb->setSource(QUrl("index.html"));
tb->show();
return a.exec();
}
300x250
300x250
'C++ > 윈도우프로그래밍응용' 카테고리의 다른 글
[C++/윈도우프로그래밍응용]35. 저수준 이벤트 처리 (0) | 2021.12.11 |
---|---|
[C++/윈도우프로그래밍응용]34. Qt와 그래픽스 (0) | 2021.11.28 |
[C++/윈도우프로그래밍응용]32. 다이얼로그 (0) | 2021.11.28 |
[C++/윈도우프로그래밍응용]31. Qt의 메인 윈도우 (2) (0) | 2021.11.22 |
[C++/윈도우프로그래밍응용]30. Qt의 메인 윈도우 (1) (0) | 2021.11.18 |
Comments