gpt4 book ai didi

python - 在 PyQt4 QTableWidget 中将最小列宽设置为标题宽度

转载 作者:太空狗 更新时间:2023-10-29 20:59:44 29 4
gpt4 key购买 nike

我正在使用 PyQt4 中的 QTableWidget 组件,但我似乎无法根据它们各自的标题长度正确调整列的大小。

表格布局应如下所示(显然没有管道):

Index | Long_Header | Longer_Header
1 | 102402 | 100
2 | 123123 | 2
3 | 454689 | 18

我正在使用的代码看起来像这样:

import sys
from PyQt4.QtCore import QStringList, QString
from PyQt4.QtGui import QApplication, QMainWindow, QSizePolicy
from PyQt4.QtGui import QTableWidget, QTableWidgetItem

def createTable():
table = QTableWidget(5, 3)
table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

headers = QStringList()
headers.append(QString("Index"))
headers.append(QString("Long_Header"))
headers.append(QString("Longer_Header"))

table.setHorizontalHeaderLabels(headers)
table.horizontalHeader().setStretchLastSection(True)

# ignore crappy names -- this is just an example :)
cell1 = QTableWidgetItem(QString("1"))
cell2 = QTableWidgetItem(QString("102402"))
cell3 = QTableWidgetItem(QString("100"))

cell4 = QTableWidgetItem(QString("2"))
cell5 = QTableWidgetItem(QString("123123"))
cell6 = QTableWidgetItem(QString("2"))

cell7 = QTableWidgetItem(QString("3"))
cell8 = QTableWidgetItem(QString("454689"))
cell9 = QTableWidgetItem(QString("18"))

table.setItem(0, 0, cell1)
table.setItem(0, 1, cell2)
table.setItem(0, 2, cell3)
table.setItem(1, 0, cell4)
table.setItem(1, 1, cell5)
table.setItem(1, 2, cell6)
table.setItem(2, 0, cell7)
table.setItem(2, 1, cell8)
table.setItem(2, 2, cell9)

return table

if __name__ == '__main__':
app = QApplication(sys.argv)
mainW = QMainWindow()

mainW.setMinimumWidth(300)
mainW.setCentralWidget(createTable())

mainW.show()

app.exec_()

当应用程序执行时,第一列很宽,而其他列则有些压缩。

有没有办法强制表格根据标题宽度而不是数据本身调整大小?更好的是,有没有办法强制每个列宽为数据和标题值的最大宽度?

更新:我试过在表上调用 resizeColumnsToContents(),但 View 变得非常困惑:

Python Table http://img514.imageshack.us/img514/8633/tablef.png

** Update2**:resizeColumnsToContents() 只要在所有单元格和标题都已插入到表中时调用,它就可以正常工作。

最佳答案

table.resizeColumnsToContents()

应该为这个特定的例子做些技巧。

一定要收藏 PyQt documentation如果您还没有这样做(在您寻找特定功能时很方便)。

关于python - 在 PyQt4 QTableWidget 中将最小列宽设置为标题宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3175665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com