【问题标题】:Wrong table cell size rendered in QTableWidget. How can I fix it?QTableWidget 中呈现的表格单元格大小错误。我该如何解决?
【发布时间】:2012-01-12 13:15:59
【问题描述】:

我有一个用 PyQt 编写的应用程序。我使用基于 QTableWidget 的网格类。 一切都很好,除了在某些情况下(单元格中的长文本数据)项目大小被确定错误并且发生了一些剪辑。 Quick'n'dirty hack 是覆盖委托的sizeHint() 函数,但表中有数千个项目,我认为,为巨大表的每个单元格调用 python (!) 函数是不好的。此外,假设所有(不仅是那些,渲染不佳的)项目的 5px 边框并不漂亮。

有人可以提供更合适的方法来解决它吗?

【问题讨论】:

  • 我无法重现这个。请提供一个简单的示例脚本来演示该问题。 (说明您使用的是什么版本的 Qt 可能也很有用 - 我使用的是 Qt-4.7.4)。
  • @ekhumoro 我也使用 4.7.4 版本,我解决了这个问题,试图为你提供一个简短的例子:) 我的自定义委托是从 QItemDelegate 继承的,女巫的默认 sizeHint 工作错误,在至少在 Windows XP 和 Windows 7、Qt 4.7.4 和一些最近的 Qt 版本中。
  • @ekhumoro QStyledItemDelegate 工作正常。

标签: qt pyqt


【解决方案1】:

我应该使用 QStyledItemDelegate 来继承我的自定义委托。使用 QStyledItemDelegate 可以很好地渲染项目!

【讨论】:

    【解决方案2】:

    您应该可以调用QTableWidget().verticalHeader().setDefaultSectionSize(rowheight) 来设置所有表行的基本大小。

    【讨论】:

    • 我不需要设置默认大小。我需要为包含长文本数据的行定义正确的大小,并以最快的方式完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2010-12-02
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多