Qt의 기본 워드 랩핑이 잘못된 위치에서 분할되기 때문에 수동 워드 랩을 수행해야합니다. 나는 이미 텍스트로 감싸지만 그 내용은 모든 내용을 보여주지 못했습니다. QLabel은 이미지처럼 상단과 하단을 절단했다 :워드 랩없이 QLabel 높이 맞추기
나는 wordWrap을하지 않고 그 안에 텍스트의 높이로 Qlabel에 맞게 할 수 있습니까?
Qt의 기본 워드 랩핑이 잘못된 위치에서 분할되기 때문에 수동 워드 랩을 수행해야합니다. 나는 이미 텍스트로 감싸지만 그 내용은 모든 내용을 보여주지 못했습니다. QLabel은 이미지처럼 상단과 하단을 절단했다 :워드 랩없이 QLabel 높이 맞추기
나는 wordWrap을하지 않고 그 안에 텍스트의 높이로 Qlabel에 맞게 할 수 있습니까?
QLabel
당신이, 그것은 중요하지 않습니다 레이아웃에 배치 wordWrap을 사용하거나 사용하지 않는 경우 문서를 참조하는 경우 필요한 높이로 자동으로 크기를 조정해야 내가 확장 height
로 쓰기 http://doc.qt.io/qt-5/layout.html
나는 이미 QLabel을 QHBoxLayout 안에 추가했다. –
@RafaelUeda 그런 다음 레이아웃을 확인해야합니다. 다른 위젯의 sizePolicy가 좋을 것입니다. 왜냐하면 'QLabel'기본 크기가 항상 전체 텍스트 높이 (여러 줄이라도)에 맞기 때문입니다. * Mohammadreza Panahi * 솔루션은 레이아웃이 매우 유연한 방식으로 자동으로 수행 할 수 있기 때문에 사용하지 않는 것이 좋습니다. 예외적 인 경우는 예외입니다. 크기를 가지고 노는 것은 항상 버그의 근원이며 향후 제한 사항입니다. 피할 수있을 때 매우 나쁜 생각입니다. – ymoreau
을 :
QLabel lbl;
int count = 0;
QString str = "";
// set lbl text
lbl.setText("hfdsf\ncsad\nfsc\dajkjkjkjhhkdkca\n925");
str = lbl.text();
for(int i = 0;i < str.length();i++)
if(str.at(i).cell() == '\n')
count++;
// resize lbl (width and height)
lbl.resize(lbl.fontMetrics().width("this is the max-length line in qlabel")
, lbl.fontMetrics().height() * (count + 1));
알림 : QLable
글꼴 face
또는 size
을 변경하면이 문제가 해결됩니다. (모든 것이 설정되기 전에 QLabel
프레임 모양을 BOX
으로 설정하기 전에). 당신이 width
확장-내용을 원하는 경우
,이 단계를 수행해야합니다
QLabel
(LBL object
) 텍스트를 읽을 수 길이str
크기를 조사하기 위해 width
이 정보가 도움이 되었기를 바랍니다 ...
QLabel의 내부 텍스트를 자동으로 크기를 조정 하시겠습니까? –
_QLabel_가 레이아웃의 일부가 아닌 경우 높이를 [QWidget :: heightForWidth] (http://doc.qt.io/qt-5/qwidget.html#heightForWidth)에서 반환 한 값으로 설정하십시오. – scopchanov
@Mohammadreza Panahi 예, 저는 이것을 정확히 알고 싶습니다. –