Форум сайта python.su
186
> С чем проще
Проще с QTableWidget, но он более примитивен.
> где можно искать, сортировать считанные данные
Везде.
Офлайн
0
Не могу разобраться с заполнением таблицы QTableView. Помогите. Спасибо.
Офлайн
186
> Не могу разобраться с заполнением таблицы QTableView
Что конкретно не получается? Напиши код.
Офлайн
0
Не могу даже код написать. С чего начать не пойму. Сначала обязательно модель нужно описать? Потом только саму таблицу? Где примеры простые посмотреть можно. Все примеры к SQL. А мне просто понять схему работы.
Офлайн
857
Офлайн
186
#!/usr/bin/python # coding: utf-8 import sys import PySide.QtGui as QtGui import PySide.QtCore as QtCore data = [[123, 456, 789], [444, 555, 666]] class modelist(QtCore.QAbstractTableModel): def __init__(self, parent): QtCore.QAbstractTableModel.__init__(self, parent) def rowCount(self, parent=None): return len(data) def columnCount(self, parent=None): return 3 def data(self, idx, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole: return data[idx.row()][idx.column()] def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole and orientation == QtCore.Qt.Horizontal: return (u"Заголовок №1", u"Заголовок №2", u"Заголовок №3")[section] class X(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) model = modelist(self) sortModel = QtGui.QSortFilterProxyModel(self) sortModel.setSourceModel(model) self.view = QtGui.QTableView(self) self.view.setModel(sortModel) self.view.setSortingEnabled(True) self.view.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.view.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.view.setCornerButtonEnabled(False) self.setCentralWidget(self.view) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) win = X() win.show() sys.exit(app.exec_())
Офлайн
0
Я так понял это для PyQt4, а у меня PyQt5.
Офлайн
88
Если есть реальная задача, наверно лучше было бы импортировать данные dbf в современную субд и далее обрабатывать их там. Лично я так и делаю, а иначе, по-быстрому, ковыряю их в консоли foxpro.
Офлайн
186
> Я так понял это для PyQt4, а у меня PyQt5.
Ну это был пример того как оно должно работать. Реальный код на PyQt5 тебе придётся писать самостоятельно.
Офлайн
0
Rodegast, спасибо!
По твоему коду.
modelist - это сама модель
rowCount - количество строк
columnCount -количество колонок
headerData - заголовки таблицы
А что такое data, DisplayRole, QSortFilterProxyModel?
Офлайн