【问题标题】:QTableWidgetItem shrinkingQTableWidgetItem 缩小
【发布时间】:2011-08-12 12:01:52
【问题描述】:

我在使用 QTableWidgetItem 时遇到了问题。 我通常像这样使用 QTableWidget

    this->setItem(i, j, new QTableWidgetItem());
    this->item(i, j)->setText(string);

我要写的那一列很窄,只有大约 20 像素。我需要在其中写 2 位数字,并且根据定义我无法调整列的大小。

问题在于,一旦文本与列宽重叠,它就会完全消失,只出现三个点(甚至什么都没有)。 我可以抑制这种行为吗?我不介意是否会有 1-2px 的重叠/剪辑,但我绝对不喜欢文本消失。

感谢您的帮助。

编辑:

好吧,经过几次尝试,我必须说 TextElide 想法有效,但是,现在我面临另一个问题。有时,当 QTableWiddgetItem 中有更多行时,底线会消失,只有顶线可见。有什么建议为什么会发生这种情况?

编辑 2:

看起来像这样......请注意,图像之间的唯一区别是更大的字体大小。单元格绝对足够高以包含所有文本。 http://www.stud.fit.vutbr.cz/~xnavra23/TWIbug1.png http://www.stud.fit.vutbr.cz/~xnavra23/TWIbug2.png

【问题讨论】:

    标签: qt qtablewidget shrink qtablewidgetitem


    【解决方案1】:

    查看textElideMode 属性。 this->setTextElideMode(Qt::ElideNone) 将删除这些点。

    【讨论】:

    • 非常感谢。真的很有帮助!
    • 好吧,经过几次尝试,我必须说 TextElide 认为有效,但是,现在我面临另一个问题。有时,当 QTableWiddgetItem 中有更多行时,底线会消失,只有顶线可见。有什么建议为什么会发生这种情况?
    • 这与尺寸有关。 resizeRowToContents() 应该修复它,但它很慢。否则,在 QHeaderView 上设置适当的 ResizeMode。
    • 嗨,我确实使用它...我的代码类似于 for(cell in 1st row) cell.setText("1\n2\n3\n");this->resizeRowToContents(0); 单元格足够高以包含所有文本行(我什至尝试对 cellWidgetItem 背景着色以查看它们是否匹配网格),但由于某些原因在某些情况下省略了某些行...我会尝试在某处发布屏幕截图
    • 我不知道。也许它与宽度有关,因为它似乎只发生在两位数上。你应该为此写一个新线程。
    【解决方案2】:

    您是否尝试过设置项目的 sizeHint? 见this

    【讨论】:

    • 我做了,但没有成功。不过,感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多