Форум сайта python.su
Всем доброго!
Подскажите пожалуйста tkinter-widget таблицу в которой можно было бы редактировать значение ячеек.
Офлайн
В самом tkinter вроде нету, но можно tile вроде заюзать.
На 100% не уверен, просто видел когда сам искал… для себя использовал ttk.treeview, а для редактирования набросал отдельно небольшой интерфейс.
Офлайн
Хотя бы сторонний виджет, вроде как бы tktable подходил. Но не знаю на сколько он гибок. Т. е. данные исправить в нем можно, но можно ли их потом забрать оттуда?
Офлайн
Cover StoryЭто раз, затем непонятнен способ заполнения таблицы из python :
Но не знаю на сколько он гибок. Т. е. данные исправить в нем можно, но можно ли их потом забрать оттуда?
html
The table can use a Tcl array variable or Tcl command for data storage and retrieval
readmeВот этот пресловутый 'Tcl command' хотелось бы поюзать из python.
multiple data sources ((Tcl array || Tcl command) &| internal caching)
manА в линуксовом /usr/lib/Tktable2.10/tktable.py кусок инициализации выглядит так:
Command-Line Name:-command
Database Name: command
Database Class: Command
Specified a command to use as a procedural interface to cell values. If -usecommand is true, this command will be used instead of any reference to the -variable array. When retrieving cell values, the return value of the command is used as the value for the cell. It uses the %-substition model described in COMMAND SUBSTITUTION below.
Отредактировано (Ноя. 20, 2010 20:13:16)
Офлайн
Вообще, все эти “command” нам безразличны - пусть массив берётся из variable.
Главное в том, чтобы существовала привязка к python-методу при обработке некоторых событий в tktable.
Т.е. “update/delete/insert” и т.п. (включая наполнение) должны вызывать обработку на питоне.
Вывод о tktable:
- либо он будет жить своим разумением через tclsql (послав куда подальше питона с его DB API),
- либо в связке с питоном он может показывать тока статические таблички типа “цены на дрова в Архангельске в 1918 г.”
Всё это склоняет в сторону выбора Qt с его заморочками для табличного редактора внешних sql-данных.
P.S. Посмотрел модель QSqlTable—QTableView и нашел её вполне продуманной.
Особо понравилось QSqRelationallTable - это подход профессионалов.
И нет никаких заморочек - это особенности SQL as is .
К чертям все эти детские tktable (и wxWidgets с их odbc c Gtk впридачу)
Только PyQt + QSql в рамках DB API 2.0 !
Отредактировано (Ноя. 22, 2010 12:51:03)
Офлайн
А когда QSql стал DB API 2 совместимым?
Офлайн
warpsonЧто так? Мы не привыкли отступать:
К чертям все эти детские tktable (и wxWidgets с их odbc c Gtk впридачу)
#!/usr/bin/python
# -*- encoding: UTF-8 -*-
from Tkinter import *
class Cell(Entry):
def __init__(self, parent):
self.value = StringVar()
Entry.__init__(self, parent, textvariable = self.value)
class Table(Frame):
def __init__(self, parent, columns = 4, rows = 10):
Frame.__init__(self, parent)
self.cells = [[Cell(self) for i in range(columns)] for j in range(rows)]
[self.cells[i][j].grid(row = i, column = j) for i in range(rows) for j in range(columns)]
if __name__ == '__main__':
root = Tk()
tab = Table(root)
tab.pack()
tab.cells[1][1].value.set('test')
tab.cells[2][2].value.set( tab.cells[1][1].value.get() )
root.mainloop()
Офлайн
Subideal OxПодскажите как сохранить введенные данные в переменных для дальнейшего загона их в БД ?
Офлайн
vito-Z80
Тут же по tkinter вопрос. Это другой вообще GUI.
Сохраняется в tkinter просто. На событие Return вешается функция callback в которой узнается положение курсора в таблице - получаются данные и сохраняются данные в БД…
Офлайн
4kpt_III
Тут же по tkinter вопрос. Это другой вообще GUI.
Сохраняется в tkinter просто. На событие Return вешается функция callback в которой узнается положение курсора в таблице - получаются данные и сохраняются данные в БД…
Отредактировано vito-Z80 (Сен. 11, 2015 22:50:34)
Офлайн