如何在QTableWidget的行和列中自动换行文本?

Aqu*_*irl 5 qt qtablewidget

我试过了:

    QTableWidget *j = new QTableWidget (10000, 5, centralWidget);
    j->setColumnWidth (0, 500);
    j->setColumnWidth (1, 30);
    j->setColumnWidth (2, 30);
    j->setColumnWidth (3, 320);
    j->setColumnWidth (4, 310);

    j->setWordWrap (true);
Run Code Online (Sandbox Code Playgroud)

也试过resizeColumnsToContentsresizeRowsToContents,但未能成功.

如果文本长于设定的宽度,我希望句子分解.
当前,句子的冗长部分没有显示出来.

Mas*_*sci 6

setWordWrap定义文本的行为,而不更改列大小.如果您需要保持列宽度固定,请resizeRowsToContents 将项目插入单元格调用(我假设您要通过该表格向表格添加文本QTableWidgetItem).

请注意,如果项目中包含的任何单词比列大小宽,则从该点开始将省略文本(默认情况下,您将看到省略号:...).如果要更改此类行为,则需要重新实现项目的绘制功能或拉伸列.


Rob*_*och 6

这将在每次调整列大小时自动调整自动换行:

connect(
    tableWidget->horizontalHeader(),
    SIGNAL(sectionResized(int, int, int)),
    tableWidget,
    SLOT(resizeRowsToContents()));
Run Code Online (Sandbox Code Playgroud)