반응형
Qt에서 줄임말(...)을 표현하고자 할 때 필요하다.
C++ DrawText 에서 텍스트 포맷의 "DT_END_ELLIPSIS" 랑 같은 역할을 한다.
1. 줄임말이 필요 없는 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //Label Width Setting int nLabelWidth = 50; QString sSourceText("ElideText"); //Font Setting QFont font("Arial"); font.setPixelSize(10); ui->label->setFont(font); ui->label->setFixedWidth(nLabelWidth); ui->label->setFrameShape(QFrame::Box); ui->label->setAlignment(Qt::AlignCenter); ui->label->setMargin(0); //ElidedText QFontMetrics fm(font); QString sElideText = fm.elidedText(sSourceText, Qt::ElideRight, ui->label->width()); QSize size = fm.size(Qt::TextSingleLine, sSourceText); ui->label->setText(sElideText); //LabelWidth QString sLabelWidth = QString("LabelWidth:%1").arg(ui->label->width()); ui->label_2->setText(sLabelWidth); //TextWidth QString sTextWidth = QString("TextWidth:%1").arg(size.width()); ui->label_3->setText(sTextWidth); } |
Output :
2. 줄임말이 필요한 경우 : int nLabelWidth = 40;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //Label Width Setting int nLabelWidth = 40; QString sSourceText("ElideText"); //Font Setting ... //ElidedText ... //LabelWidth ... //TextWidth ... } |
Output :
※ 핵심코드
1 2 | QFontMetrics fm(font); QString sElideText = fm.elidedText("BlahBlahBlah", Qt::ElideRight, ui->label->width()); |
반응형
'02.윈도우 > Qt' 카테고리의 다른 글
Qt에서 현재경로 가져오기 (0) | 2014.03.10 |
---|---|
Drag&Drop Event (0) | 2014.03.07 |
Qt Creator Color Scheme & KeyboardSetting (0) | 2014.02.19 |
Qt 실행시간 체크 - QTime (0) | 2014.02.19 |
qDebug() to File (0) | 2014.02.18 |