31

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

列幅を設定する関数を見つけました(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);
}
4

3 に答える 3

1

setHTML(QString) または insertHTML(QString) 関数を使用してスタイルシートを挿入できるようです。

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

参照: 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 仕様をターゲットにしているようです

表の行内でフォントを指定しようとしましたか。

insertHTML を使用して次の文字列を渡します。この文字列は QString として宣言されます

<style>
table > tr {font-size: normal normal 400 12px/24px serif;}
</style>
于 2013-06-06T00:15:06.493 に答える
1

行の高さをテキストの高さよりも高くしたい場合は、行の最初のセルに 0xN の透明な画像を挿入してみてください (Qt で幅をゼロにできない場合は 1xN)。

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

カリグラを見たことがありますか?そのlibs/kotext および libs/textlayoutライブラリは、QTextEdit よりもはるかに豊富なテーブル サポートを備えたカスタム QAbstractTextDocumentLayout を実装します。

于 2013-08-02T00:37:26.780 に答える
0

を使用してスタイルシートを挿入しますthis->document()->setDefaultStyleSheet("css goes here");

http://qt-project.org/doc/qt-5.0/qtwidgets/qtextedit.html#document-prop およびhttp://qt-project.org/doc/qt-5.0/qtgui/qtextdocument.html#defaultStyleSheetを参照してください-小道具

(リンクは Qt5 ドキュメントに移動しますが、これらの機能は Qt4 でも利用できます。)

于 2013-10-10T17:23:39.197 に答える