5
Q
如何PyQt4中
A
回答
11
谈到如果您使用的是QTableView
用自己的模型,你需要实现在该headerData()
方法模型返回标题的数据。这里有一个只显示列标题的片段 - 更改header_labels
值以更改标题文本。
class TableModel(QAbstractTableModel):
header_labels = ['Column 1', 'Column 2', 'Column 3', 'Column 4']
def __init__(self, parent=None):
QAbstractTableModel.__init__(self, parent)
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return self.header_labels[section]
return QAbstractTableModel.headerData(self, section, orientation, role)
-1
楼主产生下面的代码作为溶液(orginally张贴在,是由一个主持人删除的引擎收录链路):
from PyQt4 import QtCore, QtGui
class myWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(myWindow, self).__init__(parent)
self.centralwidget = QtGui.QWidget(self)
self.view = QtGui.QTableView(self.centralwidget)
self.view.setSortingEnabled(True)
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.addWidget(self.view, 1, 0, 1, 3)
self.setCentralWidget(self.centralwidget)
self.model = QtGui.QStandardItemModel(self)
for rowName in range(3) * 5:
self.model.invisibleRootItem().appendRow(
[ QtGui.QStandardItem("row {0} col {1}".format(rowName, column))
for column in range(3)
]
)
for column in range(3):
self.model.setHeaderData(column, QtCore.Qt.Horizontal,
'Column %d' % int(column+1))
for row in range(3 * 5):
self.model.setHeaderData(row, QtCore.Qt.Vertical,
'Row %d' % int(row+1))
self.proxy = QtGui.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.model)
self.view.setModel(self.proxy)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
main = myWindow()
main.show()
main.resize(400, 600)
sys.exit(app.exec_())
相关问题
- 1. 如何PyQt4中
- 2. PyQt4中
- 3. PyQt4中
- 4. pyqt4:如何查看QWebPage?
- 5. 如何使用PyQt4的
- 6. pyqt4 QTextEdit - 如何设置MaxLength?
- 7. 如何覆盖pyqt4 QGraphicsView.mousePressEvent?
- 8. 如何获得PyQt4.phonon?
- 9. 如何刷新PYQT4中嵌入的MatPlotlib?
- 10. 如何在pyqt4中使用qss?
- 11. 如何处理PyQt4中的布局?
- 12. 如何在PyQt4的QWidget中使用QPainter
- 13. 如何在PyQt4中使用QInputMask和QDoubleValidator?
- 14. 如何在PyQt4中创建QString?
- 15. 如何在PyQt4中使用matplotlib
- 16. 如何在PyQt4中杀死单个QtCore.QTimer?
- 17. 如何在anaconda中安装PyQt4?
- 18. 在pyqt4 qobject类中连接pyqt4信号
- 19. 对准PyQt4中
- 20. PyQt4中的SetTextCursor
- 21. 是PYSIGNAL PyQt4中
- 22. commandLinkButton PyQt4中
- 23. Q_ENUMS在PyQt4中
- 24. 信号PyQt4中
- 25. QScrollWidget中的PyQt4 + matplotlib
- 26. 问题在PyQt4中
- 27. PyQt4中:调整dockWidget
- 28. pyqt4 QComboBox setEditable(True) - 如何设置MaxLength?
- 29. 如何提高PyQt4的效率QListWidget
- 30. 如何将QPushButton插入QLabel(PyQt4)?
我使用一个'QtGui.QStandardItemModel()'如模型,我连接到'QtGui.QTableView()'。实际上'headerData()'是QAbstractItemModel的一个虚函数,而你的'QStandardItemModel'是'QAbstractItemModel'的子类。'setHeaderData()' – Rao
@PBLNarasimhaRao请检查http://srinikom.github.io/pyside-docs/PySide/QtCore/QAbstractItemModel.html#PySide.QtCore.PySide.QtCore.QAbstractItemModel.headerData/QAbstractItemModel.html#PySide.QtCore.PySide.QtCore.QAbstractItemModel。 headerData](在这里) –