我正在使用 qt 框架开发应用程序,现在我想将表格数据保存为 pdf。我正在使用 QTextTable 和 QTextDocument 类。但是我不能在单元格中居中文本。我该怎么做?

感谢帮助。

最佳答案

如果要在插入文本时进行对齐,可以使用alignment = Qt:AlignHCenter 调用此函数。您可以修改该函数以指定字符格式。

// Insert text with specified alignment in specified cell
void insertAlignedText(QTextTable *table, int row, int col, Qt::Alignment alignment, QString text)
{
    // Obtain cursor and current block format
    QTextCursor textCursor = table->cellAt(row,col).firstCursorPosition();
    QTextBlockFormat blockFormat = textCursor.blockFormat();

    // Read vertical part of current alignment flags
    Qt::Alignment vertAlign = blockFormat.alignment() & Qt::AlignVertical_Mask;

    // Mask out vertical part of specified alignment flags
    Qt::Alignment horzAlign = alignment & Qt::AlignHorizontal_Mask;

    // Combine current vertical and specified horizontal alignment
    Qt::Alignment combAlign = horzAlign | vertAlign;

    // Apply and write
    blockFormat.setAlignment(combAlign);
    textCursor.setBlockFormat(blockFormat);
    textCursor.insertText(text);
}

关于c++ - 如何在 QTextTable 中居中文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5187484/

10-11 18:03