Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru
  • Начало
  • » GUI
  • » Отображение/редактирование blob из QtSql модели как картинки в приложении на PyQt4 [RSS Feed]

#1 Дек. 4, 2016 12:21:12

lwwwr
Зарегистрирован: 2016-12-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отображение/редактирование blob из QtSql модели как картинки в приложении на PyQt4

Есть БД SQLite, есть приложение под PyQt4. База подключается, таблица отображается. Возникла проблема с реализацией отображения blob полей. поля blob содержат картинку, которую нужно посмотреть и/или изменить Добавление строк в БД работает, изменение тоже.

Как это можно реализовать?

Для оперирования с БД обязателен QtSql.

Примерный код без реализации отображения blob ниже

 import sys
from PyQt4 import QtCore, QtGui, QtSql
def initializeModel(model):
   model.setTable('ololo')
   model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
   model.select()
   model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
   model.setHeaderData(1, QtCore.Qt.Horizontal, "photo")
   model.setHeaderData(2, QtCore.Qt.Horizontal, "Mark")
   model.setHeaderData(3, QtCore.Qt.Horizontal, "Surname")
def createView(title, model):
   view = QtGui.QTableView()
   view.setModel(model)
   view.setWindowTitle(title)
   return view
def addrow():
   print (model.rowCount())
   ret = model.insertRows(model.rowCount(), 1)
   print (ret)
def findrow(i):
   delrow = i.row()
if __name__ == '__main__':
   app = QtGui.QApplication(sys.argv)
   db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
   db.setDatabaseName('1.sqlite')
   model = QtSql.QSqlTableModel()
   delrow = -1
   initializeModel(model)   
   view1 = createView("Table", model)
   view1.clicked.connect(findrow)
   dlg = QtGui.QDialog()
   layout = QtGui.QVBoxLayout()
   layout.addWidget(view1)
   button = QtGui.QPushButton("Add a row")
   button.clicked.connect(addrow)
   layout.addWidget(button)
   btn1 = QtGui.QPushButton("del a row")
   btn1.clicked.connect(lambda: model.removeRow(view1.currentIndex().row()))
   layout.addWidget(btn1)
   dlg.setLayout(layout)
   dlg.setWindowTitle("Database Demo")
   dlg.show()
   sys.exit(app.exec_())

Офлайн

#2 Дек. 4, 2016 13:20:54

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 1091
Репутация: +  79  -
Профиль   Отправить e-mail  

Отображение/редактирование blob из QtSql модели как картинки в приложении на PyQt4

Месье не слышал про ООП?





С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Дек. 4, 2016 14:18:06

lwwwr
Зарегистрирован: 2016-12-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отображение/редактирование blob из QtSql модели как картинки в приложении на PyQt4

Rodegast
Месье не слышал про ООП?
У месье сложновато с ООП, но не совсем глухо.
Код просто разовый и всё.
Думал, что можно было бы не загоняться, а написать пару костылей и всё.

Офлайн

  • Начало
  • » GUI
  • » Отображение/редактирование blob из QtSql модели как картинки в приложении на PyQt4[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version