【问题标题】:How to make the table widget just fits the table using pyqt5?如何使用 pyqt5 使表格小部件恰好适合表格?
【发布时间】:2022-02-17 11:15:10
【问题描述】:

我正在尝试使用 pyqt5 制作表格
这是我的代码:

table = QTableWidget()

table.setRowCount(len(dataElementsList)+1)
table.setColumnCount(3)

#Add Table heads items
table.setItem(0, 0, QTableWidgetItem("Name   "))
table.setItem(0, 1, QTableWidgetItem("DataType   "))
table.setItem(0, 2, QTableWidgetItem("Reference Type    "))

#Adding Items to the table
for i in range( len(dataElementsList) ):
    name = dataElementsList[i]["dataElementName"] + "   "
    dataType = dataElementsList[i]["dataElementReference"] + "   "
    referenceType = dataElementsList[i]["dataElementReferenceType"] + "   "

    table.setItem(i+1, 0, QTableWidgetItem(name))
    table.setItem(i+1, 1, QTableWidgetItem(dataType))
    table.setItem(i+1, 2, QTableWidgetItem(referenceType))


#Make Cell stretch with the data in it
header = table.horizontalHeader()
header.setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)

然后在显示表格后,它将如下图所示:

我的问题是:如何删除所有这些空白并使其缩小以仅适合表格?

更新: 添加这几行代码后:

table.setSizeAdjustPolicy(table.AdjustToContents) 
table.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)

问题已部分解决,但表格外仍有余量。 这是表格的更新图像:

【问题讨论】:

  • Resize column width to fit into the QTableWidget pyqt。添加table.setSizeAdjustPolicy(table.AdjustToContents)table.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
  • 非常感谢,它部分解决了问题,但表格外仍有一点余量。
  • @musicamante 我会将更新后的表格图像添加到问题中,请检查。
  • 你在使用layout managers经理,不是吗?
  • @musicamante 感谢您的帮助,我解决了。我用解决问题的步骤对问题发表了评论。

标签: python pyqt5


【解决方案1】:

我解决了这个问题,我想与您分享解决方案。
首先,我将@musicamante 提到的这些行添加到我的代码中:


table.setSizeAdjustPolicy(table.AdjustToContents) 
table.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)

他们部分解决了我的问题,但是桌子外面有一点空白,如下图:

所以,我添加了这一行来彻底解决问题:


table.setStyleSheet("padding :-11px")

【讨论】:

  • 抱歉,但这不是一个好的解决方案:始终不鼓励进行固定像素调整,尤其是对于大小上下文:它们不考虑系统设置并且不支持 DPI。它可能适用于您的 系统,而不适用于其他系统。您也没有回答我关于布局的问题(这是最重要的:避免布局管理器几乎总是一种糟糕的做法)。另外,请不要在帖子中使用 `` 字符,因为它完全被忽略了。请仔细阅读code practice 并阅读帖子编辑器中的格式帮助(请参阅 [?] 链接)。
猜你喜欢
  • 2012-02-25
  • 2018-10-09
  • 2018-03-28
  • 2012-05-17
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
相关资源
最近更新 更多