1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from PyQt4.QtCore import Qt
class QPlainTextItemDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
plaintext_editor = QtGui.QPlainTextEdit(parent)
return plaintext_editor
def setEditorData(self, editor, index):
text = index.model().data(index, Qt.EditRole)
editor.setPlainText(text)
def setModelData(self, editor, model, index):
text = editor.document().toPlainText()
model.setData(index, text, Qt.EditRole)
def updateEditGeometry(self, editor, option, index):
editor.setGeometry(option.rect)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
table = QtGui.QTableWidget(3, 1)
table.setItemDelegate(QPlainTextItemDelegate())
widget_item = QtGui.QTableWidgetItem("First line\nSecond line.")
table.setItem(0, 0, widget_item)
vertical_header = table.verticalHeader()
vertical_header.setResizeMode(QtGui.QHeaderView.Interactive)
vertical_header.setDefaultSectionSize(50)
table.setColumnWidth(0, 200)
table.show()
app.exec_() |
Partager