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

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

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

Редактирование строки, удаление строки из таблицы в Phyton 3.81 (Питоне)

На предыдущей странице было рассмотрено вставка строки в таблицу. Далее мы аналогично рассмотрим корректировку строки. Добавим еще кнопку (см. рис. 2 на пред. стр):

btn_edit =Button(text='Редактировать',bg='white',command=vibor)
btn_edit.place(x=250, y=380)

Создадим функцию vibor() для выбора из таблицы указанную строку в дереве:

Переменная rows содержит список списков таблицы. В данном случае список состоит из одного списка с индексом 0. Поэтому создаем переменую sp-список для выбора значений полей. Их значения заносятся во временные переменные zdescription, zcosts, ztotal:

def vibor():
    global zdescription, zcosts, ztotal # чтобы переменные были доступны в других функциях
    c.execute('''select * from finance where id=?''',
    tree.set(tree.selection()[0], '#1') )
#выбор строки с выбранным ключом=ID
    rows = c.fetchall()
#список с данными выбранной строки
    sp=rows[0];zdescription=sp[1]; zcosts=sp[2]; ztotal=sp[3]

    korzap()

Рис. 1 Функция vibor() вызывает функцию korzap() для корректировки в дочернем окне, используя форму для ввода:

def korzap():
global description,combobox, total

t=Toplevel() #Создаем дочернее окно,где будут вводиться записи из формы
t.geometry('500x320+400+300') #размер дочернего окна
t['bg']='white' #Цвет дочернего окна
t.title('Редактирование записи') #заголовок дочернего окна
label_description=Label(t,text='Наименование') #Название 1-го поля записи
label_description.place(x=50,y=50) # расположение названия
label_select=Label(t,text='Статья дохода\Расхода')#Название 2-го поля записи
label_select.place(x=50,y=90) # расположение названия
label_sum=Label(t,text='Сумма');label_sum.place(x=50,y=130) #3-е поле

combobox=Combobox(t) #Создаем виджет для выбора-доход или расход
combobox['values']=('Доход','Расход') # присваиваем значения выбора
combobox.current(0) #устанавливаем по умолчанию 1-е значение(доход)
combobox.place(x=230,y=90) #расположение виджета
zd= StringVar() #создаем переменную типа string
zd.set(zdescription)#придаем корректируемое значение поля discription
description=Entry(t,textvariable=zd) #Создаем переменную для ввода значения первого поля
description.place(x=230,y=50)

zt=DoubleVar(); zt.set(ztotal)
total=Entry(t,textvariable=zt); total.place(x=230,y=130)

btn_edit = Button(t, text='Заменить',command=update)#вызываем функцию update() для замены
btn_edit.place(x=205, y=170)

При копировании скрипта не забывайте про 4 пробела

def update():
    c.execute('''UPDATE finance SET description=?, costs=?, total=? WHERE ID=?''',
    (description.get(), combobox.get(), total.get(), tree.set(tree.selection()[0], '#1')))#Происходит замена #значений полей в выбранной строке
    conn.commit() #Выполнение операции
    view_records() #вызов функции вывода таблицы

 

def view_records():
for i in tree.get_children(): # очищаем предыдущюю информацию в дереве, цикл
    tree.delete(i)# очищаем предыдущюю информацию
c=conn.cursor(); c.execute('''select *from finance''') #из таблицы выбираются записи
rows = c.fetchall() #все записи заносятся в список rows
for row in rows:#цикл по списку
    tree.insert("", END, values=row);tree.pack() #вставляются записи в дерево и выводятся на экран

Рис.2.Текст фрагмента скрипта -создание дочернего окна с формой для корректировки данных строки.

Корректировка строки в Таблице в Питоне

Рис.3. Форма для корректировки выбранной строки.

Корректиовка записи в Питоне

Рис.4. После нажатия на кнопку "Заменить"

Удаление записи из таблицы в Питоне (Phyton)

Добавляем кнопку для удаления строки. Текст кнопки добавляем в конце скрипта на рис.2 на 1 странице (предыд.)

btn_del=Button(text='Удалить строку',bg='white', command=delete)
btn_del.place(x=400,y=380);btn_del.bind('<Button-1>')

Используем функцию delete() :

def delete():
    c.execute('''DELETE FROM finance WHERE ID = ?''',     (tree.set(tree.selection()[0], '#1')))
    conn.commit()
    view_records()

Рис. 5. Текст функции по удалению выбранной строки из таблицы

Загрузка...