Найти - Пользователи
Полная версия: Технология работы с базой данных
Начало » Python для новичков » Технология работы с базой данных
1 2 3 4 5 6
Rodegast
> С чем проще
Проще с QTableWidget, но он более примитивен.

> где можно искать, сортировать считанные данные
Везде.
MaratD
Не могу разобраться с заполнением таблицы QTableView. Помогите. Спасибо.
Rodegast
> Не могу разобраться с заполнением таблицы QTableView

Что конкретно не получается? Напиши код.
MaratD
Не могу даже код написать. С чего начать не пойму. Сначала обязательно модель нужно описать? Потом только саму таблицу? Где примеры простые посмотреть можно. Все примеры к SQL. А мне просто понять схему работы.
py.user.next
Qt Model/View Tutorial
Rodegast
#!/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_())
MaratD
Я так понял это для PyQt4, а у меня PyQt5.
Shaman
Если есть реальная задача, наверно лучше было бы импортировать данные dbf в современную субд и далее обрабатывать их там. Лично я так и делаю, а иначе, по-быстрому, ковыряю их в консоли foxpro.
Rodegast
> Я так понял это для PyQt4, а у меня PyQt5.

Ну это был пример того как оно должно работать. Реальный код на PyQt5 тебе придётся писать самостоятельно.
MaratD
Rodegast, спасибо!
По твоему коду.
modelist - это сама модель
rowCount - количество строк
columnCount -количество колонок
headerData - заголовки таблицы
А что такое data, DisplayRole, QSortFilterProxyModel?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB