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

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 еще 2 строки для доступа к ячейкам:

for row in rows:
item=tree.insert("", END, values=row)

tree.item(item,tags=item)#item() доступ к ячейкам
tree.bind('<1>', edit_cell)

с помощью левой клавиши и с помощью функции edit_cell ячейки открываются для редактирования. После редактирования необходимо нажать на Enter для закрепления и для возможности перехода к другим строкам и ячейкам таблицы. для корректиовки ячейки необходимо подвести к ней курсор и нажать на левую клавишу. Нельзя в режиме редактирования ячейки делать другие операции.

Ниже приводится текст функции edit_cell:

def edit_cell(event): #корректировка ячейки

if tree.identify_region(event.x, event.y) != 'heading':# сортировка по заголовку
#портится, если нет условия (корректирует заголовок)

# the user clicked on a cell
    def ok(event):
    """Change item value."""
         tree.set(item, column, entry.get())#из ячейки после корректировки по координам заносится значение в ветвь #дерева
         entry.destroy() #закрывается окно ячейки
         slovar= tree.set(item)#Создается словарь-имя поля:значение
         zdescription=slovar['description'];zcosts=slovar['costs'] #заносятся из словаря значения во вспомогательные #переменные
         ztotal=slovar['total']
         c.execute('''UPDATE finance SET description=?, costs=?, total=? WHERE ID=?''',
         (zdescription,zcosts, ztotal, tree.set(tree.selection()[0], '#1'))) #заменяет все поля, в том числе #откорректированные
    column = tree.identify_column(event.x) # identify column
    item = tree.identify_row(event.y)#Возвращает идентификатор элемента в позиции y.
    x, y, width, height = tree.bbox(item, column)
#bbox(item, column=None)
#Возвращает ограничивающую рамку (относительно окна виджета treeview) указанного
#элемента в форме (x, y, width, height).


    value = tree.set(item, column)#получает значение корректируемой ячейки
    entry = ttk.Entry(tree) # create edition entry
    entry.place(x=x, y=y, width=width, height=height,anchor='nw')
# display entry on top of cell отображение записи в верхней части ячейки
    entry.insert(0, value) # put former value in entry помещается прежнее значение в enter
    entry.bind('<FocusOut>', lambda e: entry.destroy())
    entry.bind('<Return>', ok) # validate with Enter подтвердите ввод

Сортировка данных по сумме и наименованию в таблице в Питоне (Phyton)

Если необходимо сортировать данные по алфавиту или по увеличению значений в столбце. Для этого необходимо нажать левую клавишу на заголовок столбца. Для этого в описании заголовков столбцов вызовем две функции-sort_naim(0) и sort_tot() , которые используют функцию sort(), которая сортирует по логике:

def sort_naim():
     global naim,tot #чтобы были доступны в функции sort()
     naim=1;tot=0;sort()
def sort_tot():
     global naim,tot
     tot=1;naim=0;sort()

def sort(): #сортировка столбцов
     global naim,tot
     for i in tree.get_children(): # очищаем предыдущюю информацию
          tree.delete(i)
     if naim==1: c.execute('''select * from finance order by description ''')
     if tot==1: c.execute('''select * from finance order by total ''')
     rows = c.fetchall()
     for row in rows:
          tree.insert("", END, values=row)
     tree.pack()

Ниже привожу полный текст скрипта:

Работа с таблицами в Питоне

Работа с таблицами в Питоне

Работа с Таблицами в Питоне

Работа с Таблицами в Питоне

Работа с таблицами в Питоне

Работа с таблицами в Питоне

При разработке программы я ориентировалась на уроки по ссылке:https://youtu.be/d7wZeAhn7B0

Советую посетить эти уроки. Там решались проблемы при работе с таблицами с использованием объектно-ориентированного программирования.

Загрузка...