在PyQt列表中添加标题

7 投票
1 回答
12937 浏览
提问于 2025-04-15 22:14

我想在PyQt中给一个列表添加标题和索引,其实不太重要用的是哪种QT列表(比如qlistwidget、qlistview、qtablewidget、qtreeview)。

简单来说,我想要的效果类似于PyQt演示中的旋转框代理示例……不过我想在列标题中显示字符串,而不是索引。



希望这个想法表达得够清楚。
提前谢谢!

1 个回答

9

QTableWidget可能是你最好的选择,因为它可以使用 setHorizontalHeaderLabels()setVerticalHeaderLabels() 来控制表格的横轴和纵轴。

from PyQt4 import QtGui

class MyWindow(QtGui.QMainWindow):

    def __init__(self, parent):
        QtGui.QMainWindow.__init__(self, parent)

        table = QtGui.QTableWidget(3, 3, self)  # create 3x3 table
        table.setHorizontalHeaderLabels(('Col 1', 'Col 2', 'Col 3'))
        table.setVerticalHeaderLabels(('Row 1', 'Row 2', 'Row 3'))
        for column in range(3):
            for row in range(3):
                table.setItem(row, column, QtGui.QWidget(self))  # your contents

        self.setCentralWidget(table)
        self.show()

当然,如果你想对表头的内容和格式有更全面的控制,可以使用 .setHorizontalHeaderItem() 和 .setVerticalHeaderItem() 方法,为每个表头定义一个 QTableWidgetItem...

想了解更多详细信息,可以查看 官方文档

撰写回答