가끔 레이블에 공백이없는 긴 텍스트 (컴퓨터의 경로)가 포함되어 있습니다.QLabel 단어 줄 바꾸기 모드
그래서 wrod 포장은 매우 이상합니다.
단어 중간에 깨지거나 공백 문자가 아닌 단어를 줄 바꿈하는 방법이 있습니까?
가끔 레이블에 공백이없는 긴 텍스트 (컴퓨터의 경로)가 포함되어 있습니다.QLabel 단어 줄 바꾸기 모드
그래서 wrod 포장은 매우 이상합니다.
단어 중간에 깨지거나 공백 문자가 아닌 단어를 줄 바꿈하는 방법이 있습니까?
한 가지 방법은 QLabel 대신 QTextDocument을 사용하여 QTextOption 클래스를 사용하는 것입니다. 이렇게하면 QTextOption::WrapMode을 사용할 수 있습니다. QTextOption :: WrapAtWordBoundaryOrAnywhere는 당신이 원하는 것을해야합니다.
는이 우아한 아니라 않는 작업 ...
그래서 헤더 클래스는 개인이 말 :
QLabel *thisLabel;
QString *pathName;
QString *pathNameClean;
및 thisLabel 어떤 곳을 정의 물론
. 그것은이 간단 경우 는 그래서 .... 좋을 것이다 AND 단어가있는 경우에만 SO에 실제 경로를 유지 (경로는 피해야한다) 포인트을 어기면 괜찮
thisLabel->setWordWrap(true);
QFile 목적을 위해 나중에 필요하면 별도의 문자열. 수동 ... 좋은 폭이 그래서 우리는 50 개 문자를 말할 것이다 ....
pathNameClean = new QString(pathName);
int c = pathName->length();
if(c > 50)
{
for(int i = 1; i <= c/50; i++)
{
int n = i * 50;
pathName->insert(n, " ");
}
}
thisLabel->setText(pathName);
와우를 행 번호 당 문자를 정의하고 문자열에 공백을 삽입 .... 시뮬레이션 단어 잘림 원래 공간이 없습니다 ...
그냥 pathName 문자열이 꽤 예쁜 QLabel 용이고 pathNameClean 문자열이 실제 경로라는 것을 기억하십시오. 공백이 삽입 된 파일을 열려고하면 ..... Qt 프로그램이 충돌합니다.
(단순한 클래스 방법이 없다면 ... 단지 몇 줄의 코드만으로도 ... 그리고 왜 문제를 해결할 수 있습니까? 프로그래머가 가장 잘 사용하는 도구입니다.)
QTextEdit/QTextBrowser가 내용에 적합하지 않으므로 받아 들일 수 없습니다. – chacham15
콘텐츠에 맞춤? 나는 그 질문에 그러한 요청을 보지 못했다. –
맞아,하지만 그것은 QLabel의 기본 동작이며 QTextEdit의 동작은 아닙니다. 또한 QTextEdit을 만드는 것이 쉽지 않습니다. – chacham15