Пример редактируемой таблицы в PyQt5
Я только начинаю изучать Python3 и библиотеку PyQt5 (до этого был давно забытый опыт кодинга на PHP5 + MySql). Прошу показать практические примеры для дальнейшего изучения по формированию редактируемой таблицы на подобии Excel сформированную на основе данных из БД Sqlite3.
Если это слишком сложно для новичка, то прошу показать на простых примерах как грамотно формировать обычную таблицу на основе данных из БД Sqlite3.
UPDATE: Нашел ниже представленный код, переписал его вручную.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
class TableModel(QtCore.QAbstractTableModel):
def __init__(self, data):
super(TableModel, self).__init__()
self._data = data
def data(self, index, role):
if role == Qt.DisplayRole:
# See below for the nested-list data structure.
# .row() indexes into the outer list,
# .column() indexes into the sub-list
return self._data[index.row()][index.column()]
def rowCount(self, index):
# The length of the outer list.
return len(self._data)
def columnCount(self, index):
# The following takes the first sub-list, and returns
# the length (only works if all rows are an equal length)
return len(self._data[0])
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.table = QtWidgets.QTableView()
data = [
[4, 9, 2],
[1, 0, 0],
[3, 5, 0],
[3, 3, 2],
[7, 8, 9],
]
self.model = TableModel(data)
self.table.setModel(self.model)
self.setCentralWidget(self.table)
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()