2013-03-20 14 views
31

私は、QTextEditクラスから派生した複雑なリッチテキストエディタを作成しています。埋め込みテーブルにさまざまな書式を挿入、サイズ変更、および適用することができる必要があります。QTextTableで行の高さを変更する方法

設定列幅(setColumnWidthConstraints)の機能が見つかりました。 しかし、change _rows_ heightsには誰もいません。

これを達成する方法はありますか?

例コード:

void CustomTextEdit::insertTable (int rows_cnt, int columns_cnt) 
{ 
    QTextCursor cursor = textCursor(); 
    QTextTableFormat table_format; 
    table_format.setCellPadding (5); 

    // TODO: This call just changed the frame border height, not table itself. 
    //table_format.setHeight (50); 

    // Setup columns widths - all is working perfectly. 
    QVector <QTextLength> col_widths; 
    for (int i = 0; i < columns_cnt; ++i) 
     col_widths << QTextLength (QTextLength::PercentageLength, 100.0/columns_cnt); 
    table_format.setColumnWidthConstraints (col_widths); 

    // ...But there is no similar function as setRowHeighConstraints for rows! 

    // Insert our table with specified format settings 
    cursor.insertTable (rows_cnt, columns_cnt, table_format); 
} 
+0

あなたは(QTextFrameFormat :: setHeightメソッドを使用することができます –

+1

@Cool_Coderこれはフレームの高さを変更しました(つまり、枠線が表示される場所)。しかし、私はテーブルの別の行の高さを指定する必要があります。 – eraxillan

+0

私はそれにコメントすることができるようにいくつかのコードを表示してくださいできますか? –

答えて

1

あなたがスタイルシートを挿入するためにsetHTML(QStringの)またはinsertHTML(QStringの)関数を使用することができるようです。

この機能をスタイルシートとともに使用する場合、スタイルシートはドキュメント内の現在のブロックにのみ適用されます( )。ドキュメント全体にスタイル を適用するには、代わりにQTextDocument :: setDefaultStyleSheet() を使用します。

REF:シムを使用してからhttp://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qtextedit.html#insertHtml

アパート.... http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/richtext-html-subset.htmlによると、あなたはフォントの宣言を設定することができます。

Qtは以下のようにあるCSS2.1仕様を、目標としているようだ... http://www.w3.org/TR/CSS2/fonts.html#propdef-font

を使用すると、テーブルの行の中にフォントを指定しようとしています。

あなたがちょうど彼らのテキストの高さが必要になるよりも、行は背の高いようにしたい場合は、透明0xNを挿入しようとすることができ、この文字列はQStringの

<style> 
table > tr {font-size: normal normal 400 12px/24px serif;} 
</style> 
0

としてdelcaredさinsertHTMLを使用して次の文字列を渡します行の最初のセルの画像(またはQtがゼロ幅を許さない場合は1xN)。

QTextTableCellFormat :: setTopPadding()で表のセルの上のパディングを設定することも、QTextBlockFormat :: setTopMargin()で上余白を設定することもできます。しかし、パディングと余白の両方がテキストレイアウトの高さAFAIKに追加されているので、どちらも絶対的な高さを設定するのには向いていません。

あなたはCalligraを見ましたか?そのlibs/kotext and libs/textlayoutライブラリは、QTextEditよりも豊富なテーブルサポートを備えたカスタムQAbstractTextDocumentLayoutを実装しています。

関連する問題