Comment changer la hauteur de rangée dans QTextTable

j'écris le Rich text editor compliqué, dérivé de QTextEdit classe. Il doit être capable d'insérer, de redimensionner et d'appliquer divers formatage aux tables intégrées.

j'ai trouvé une fonction pour la largeur des colonnes de configuration (setColumnWidthConstraints). Mais il n'existe pas de change _rows_ heights.

Est-il possible de réaliser cela?

exemple de code:

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);
}
31
demandé sur Paras Joshi 2013-03-20 12:04:07

3 réponses

il semble que vous pouvez utiliser les fonctions setHTML(QString) ou insertHTML(QString) pour insérer une feuille de style.

lors de l'utilisation de cette fonction avec une feuille de style, la feuille de style ne appliquer au bloc courant dans le document. Pour appliquer un style feuille tout au long d'un document, utilisez QTextDocument:: setDefaultStyleSheet() plutôt.

ref: http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qtextedit.html#insertHtml

appart de l'aide de cales....selon http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/richtext-html-subset.html vous pouvez définir la déclaration de police.

Qt semble avoir ciblé le CSS2.1 Spécification, qui est la suivante.. http://www.w3.org/TR/CSS2/fonts.html#propdef-font

avez-vous essayé de spécifier la police dans la rangée de la table.

passer la chaîne suivante en utilisant insertHTML, où cette chaîne est delcared comme un QString

<style>
table > tr {font-size: normal normal 400 12px/24px serif;}
</style>
1
répondu Brett Caswell 2013-06-06 00:15:06

Si vous voulez juste pour rendre les lignes plus grand que leur hauteur de texte exigerait, vous pourriez essayer d'insérer une image transparente 0xN dans la première cellule de la rangée (ou 1xN si Qt ne vous laissera pas faire la largeur zéro).

il pourrait également être possible de définir le rembourrage supérieur de la cellule de table avec QTextTableCellFormat: setTopPadding() ou peut-être de définir la marge supérieure avec QTextBlockFormat:: setTopMargin(). Mais le rembourrage et les marges sont ajoutés à la hauteur de mise en page AFAIK, de sorte qu'aucun des ils sont très bons pour fixer une hauteur absolue.

Avez-vous regardé Calligra