кинотеатр Победа Лучшая поза в постели мечеть

piknad@yandex.ru

Начинающим

изучать Python

Город Уфа

мост ч/з Белую

Яндекс.Погода

Салават Юлаев Монумент Дружбы
СОДЕРЖАНИЕ

На главную страницу сайта

Установка PYTHON 3.8

Установка PyQT5 с DESIGNER в PYTON 3.8

Установка Dgango 3.0 в Windows 7. Решение проблем

Создание таблицы tablewidget; редактирование,сортировка данных в таблице в Phyton 3.81 Tkinter

Создание таблицы; редактирование,сортировка данных,вставка и удаление строк в таблице в Phyton 3.81 PyQt5. Использование Designer.

Модели в Питон 3, Python 3, PyQt5

Примеры перевода программ с Delphi в Python

Создание сайта (блога) в Pycharm

Получение кэшбэка

Программирование на Питоне 3, Python 3. Базы данных. Модели, связанные с данными

1 2 3 4 5 6

Модель, связанная с таблицей Table View

Если необходимо дать пользователю корректировать данные, удалять и добавлять записи, следует использовать класс SQLTableModel. непосредственно связанный с таблицей базы данных.

Конструктор класса:

<object>=SQLTableModel([parent=None],[,][,db=QSqlDatabase]) . Необязательный параметр db задает соединение с базойданных,запрос к которой следует выполнить. Если он не указан, будет использоваться соединение по умолчанию (стр. 611. Н.Прохоренок,В. Дронов).

Далее приводится текст программы для вывода таблицы с возможностью редактирования. Используется класс QTableView для представления модели:

Вывод таблицы базы данных для редактирования в Питоневывод таблицы для редактирования в Питоне

Текст программы для копирования:

import sys
import tableview
from PyQt5 import QtCore, QtGui, QtWidgets,QtSql
from PyQt5.QtWidgets import QWidget, QToolTip
from PyQt5.QtGui import QFont
#611 стр Н.Прохоренок В.Дронов очень хороший учебник
#Выод таблицы QtableView без Designer. С ООП, в дополнительном окне
class GL_Window(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
#методом super() мы явно вызываем родительский конструктор.
self.resize(700,700)
self.setWindowtitle('Работа с таблицей без designer Qtableview')
self.show()
self.statusBar().showMessage('Строка состояния для вывода информации ')

self.initUI()
def initUI(self):

self.w=QtWidgets.QWidget()#создаем экземпляр дополнительного окна
self.w.setWindowtitle('Расчет финансов')
con=QtSql.QSqlDatabase.addDatabase('QSQLITE') #тип базы данных и создание соединения
con.setDatabaseName('data.sqlite') #вызов таблицы из базы
con.open() #открытие соединения
# Создаем модель
self.stm=QtSql.QSqlTableModel(parent=self.w)
self.stm.setTable('finance')#Задает имя таблицы базы данных
self.stm.select()# Считывает данные из таблицы базы данных в модель

self.stm.setHeaderData(0,QtCore.Qt.Horizontal,'ID')#4-е строки-заголовки полей
self.stm.setHeaderData(1,QtCore.Qt.Horizontal,'Наименование')
self.stm.setHeaderData(2,QtCore.Qt.Horizontal,'Операция')
self.stm.setHeaderData(3,QtCore.Qt.Horizontal,'Сумма')

#Создаем для модели таблицы представление:
vbox=QtWidgets.QVBoxLayout()#вертикальный контейнер для таблицы tableview
self.tv=QtWidgets.QTableView()#Создаем представление для вывода таблицы Tableview
self.tv.setModel(self.stm)#Заносим таблицу в представление
#Скрываем первый столбец, в котором выводится идентификатор
self.tv.hideColumn(0)
self.tv.setColumnWidth(1,200) #ширина столбца
self.tv.setColumnWidth(2,100)
self.tv.setColumnWidth(3,70)
vbox.addWidget(self.tv)#помещение представления с таблицей в контейнер
QToolTip.setFont(QFont('SansSerif', 20))#шрифт и размер для комментария к кнопкам
self.btnAdd=QtWidgets.QPushButton('+')#кнопка для добавления записи
self.btnDel=QtWidgets.QPushButton('-')#кнопка для удаления записи
self.btnAdd.clicked.connect(self.addRecord) #вызов функции для добавления записи
self.btnAdd.setToolTip('ДОБАВИТЬ ЗАПИСЬ')#вывод при наведени на кнопку
vbox.addWidget(self.btnAdd) #помещение кнопки в контейнер
self.btnDel.clicked.connect(self.delRecord)#вызов функции для удаления записи
self.btnDel.setToolTip('УДАЛИТЬ ЗАПИСЬ')#вывод при наведени на кнопку
vbox.addWidget(self.btnDel)#помещение кнопки джля удаления в контейнер
self.w.setLayout(vbox)#помещение контейнера
self.w.resize(500,500)
self.w.show()#открытие экземпляра с контейнером и таблицей Tableview

#https://docviewer.yandex.ru/view/16201825


def addRecord(self):
self.stm.insertRow(self.stm.rowCount())

def delRecord(self):
self.stm.removeRow(self.tv.currentIndex().row())
self.stm.select()

if __name__ == '__main__':

app = QtWidgets.QApplication(sys.argv)# Новый экземпляр QApplication
win = GL_Window()#обязательно
sys.exit(app.exec_())

 

Рис.1 Текст программы для редактирования таблицы в Питоне (QPyt5).

После запуска программы получим:

вывод таблицы для редактирования в Питоне

рис.2. Вывод таблицы для редактирования с помощью QtableView

Добавление записи в Таблицу в Питоне

Рис.3 Добавление записи в таблицу.

Корректировка таблицы в ПИтоне

Рис.4. Ввод информации в добавленую запись и комментарий к кнопке

1 2 3 4 5 6

Загрузка...