私はラベルにスペースがない長いテキスト(コンピュータのパス)を含むことがあります。QLabelワードラップモード
だからwrodラップは非常に奇妙なラップです。
空白部分だけでなく、単語の途中で改行するラベルを改行する方法はありますか?
私はラベルにスペースがない長いテキスト(コンピュータのパス)を含むことがあります。QLabelワードラップモード
だからwrodラップは非常に奇妙なラップです。
空白部分だけでなく、単語の途中で改行するラベルを改行する方法はありますか?
QLabelの代わりにQTextDocumentを使用してQTextOptionクラスを使用することもできます。これによりQTextOption::WrapModeを使用できます。 QTextOption :: WrapAtWordBoundaryOrAnywhereはあなたが望むことをする必要があります。
これはエレガントではなく、仕事をする...
だから、ヘッダクラスはプライベート持って言う:
QLabel *thisLabel;
QString *pathName;
QString *pathNameClean;
もちろんthisLabelいくつかの場所を定義します。 それはこの単純だった場合それはいいだろう....
thisLabel->setWordWrap(true);
IF罰金だと単語が(パスは避けなければならない)ポイント
を壊している場合にのみSOであなたの実際のパスを保つこと後で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