2016-03-30 11 views
2

ヘルプウィンドウのサイズをテキストのサイズに合わせて変更したいが、続行する方法がわからない。理論的には、それは本当に1でレンダリングすることができ、ので、あなたは、本当に長い行をあなたのテキストについて、いくつかのレイアウト情報を必要とするヘルプウィンドウのサイズをテキストに合わせて変更する

QTextEdit *help = new QTextEdit(this); 
help->setWindowFlags(Qt::Window); 
help->setReadOnly(true); 
//// 
QFile file(":/help.txt"); 
QTextStream stream (&file); 
QString line; 

if (!file.open (QIODevice::ReadOnly)) 
{ 
    //some error report 
} 

while(!stream.atEnd()) { 
    line = stream.readLine(); 
    help->append(line); 
} 
file.close(); 

help->show(); 
+0

どのように表示されますか?それは何かを表示するか、まったく表示しませんか? –

+0

小さなウィンドウが表示されます。調整するか、サイズを変更したい – ner

+0

@IceFireのように、まずテキストの幅を決定し、その高さを計算する必要があります。テキストの全幅を取得したら、テキストが一定の幅で表示される行の数を見つける必要があります:rows = textWidth/desiredWidth、次に調整された高さを取得するには、adjustedHeight = rows * textHeightのようにする必要があります。その後、ウィンドウのレイアウトの幅と高さを設定します –

答えて

2

は、ここに私のコードです。

だから、私はテキストのターゲットの幅を目標にしていますが、それより広いテキストはすべてラップされます。さて、あなたが必要とするのは、その種のテキストの高さです。

私は、QTextDocumentを使用し、上記のように幅を設定し、すべてのテキストを挿入し、QTextDocument::sizeを使用してサイズを取得することをお勧めします。そうすれば、対策が得られ、ウィンドウのサイズを変更することができます(余白、余白などを追加する)。

関連する問題