1
Qt 4.7을 사용하고 있습니다. 내가 원하는 :이미지로 텍스트를 채우는 방법; 스케일 & 센터링 (수직 및 수평)?
- 채우기 텍스트 이미지
- 그 이미지가 텍스트의 크기를 조정할 수 할과 (문자, eg'A ') (글꼴 크기의 변화에 따라 변화)
- 그 이미지가 그 텍스트의 중심으로부터 수직 및 수평으로 센터링되기를 원한다. 이 하나 개의 문자를 달성
: 나는 결과를 얻고 있지만,이 CSS 또는 기타 방법으로 정렬해야하는 경우와 같이 이미지가 제대로 중심으로되지
[ bgTextImage.h ]
QTextCursor cursor;
QTextCharFormat format;
QString imageFileName
[ bgTextImage.cpp ]
cursor = ui->textEdit->textCursor();
QPixmap pic(imageFileName);
QFontMetrics fontMetrics(format.font());
QSize fMSize = fontMetrics.size(0, "A", 0, 0);
QPixmap newPixmap = pic.scaled(fMSize, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
if(newPixmap.width() > fMSize.width())
{
int x = (newPixmap.width() - fMSize.width())/2;
newPixmap = newPixmap.copy(x, newPixmap.rect().y(), fMSize.width(), fMSize.height());
}
if(newPixmap.height() > fMSize.height())
{
int y = (newPixmap.height() - fMSize.height())/2;
newPixmap = newPixmap.copy(newPixmap.rect().x(), y, fMSize.width(), fMSize.height());
}
format.setForeground(QBrush(newPixmap));
format.setTextOutline(QPen(borderColor, ui->spinBoxWidth->value()));
ui->textEdit->clear();
cursor.insertText(text, format);
. 저는 이것이이 일을 끝내고 더 나은 최선의 실천을 찾는 매우 아마추어적인 접근이라고 생각합니다. 그렇지 않다면 적어도 현재의 프로세스를 향상시킬 방법이 있다면 제안하십시오.
답변 주셔서 감사합니다. LeviX. 이것은 유망한 것으로 보인다. 나는 그것에 대해 알고 있었지만 전에는 사용 해본 적이 없다. 나는 그것을 시도하고 결과를 공유 할 것이다. – zeFree