Psixo
Янв. 10, 2010 20:10:22
Есть готовый видгет таблицы или нет? Только сейчас стал осваивать GUI, интерфейс собирал через glade-3 и там ничего подходящего не нашел. Какие варианты?
Psixo
Янв. 11, 2010 09:53:43
И тишина … =)
Psixo
Янв. 12, 2010 20:07:50
bw
Янв. 13, 2010 06:27:55
Я тоже не нашел, ни тогда, ни сейчас.
Встречал третью разработку для GTK1, вроде то что надо, но мне GTK1 ни к чему.
Руки чешутся на Vala виджет нарисовать, очень мне Vala нравится, но всё некогда разобраться с этим языком.
Psixo
Янв. 13, 2010 16:34:38
Но ведь как-то делают таблицы в GTK приложениях. В том же Torrent-клиенте Deluge
Psixo
Янв. 13, 2010 16:43:59
#!/usr/bin/env python
# coding: utf-8
import pygtk
pygtk.require('2.0')
import gtk
class MyTable:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title(u"Моя таблица")
self.window.connect("destroy", lambda w: gtk.main_quit())
# хранит данные в виде списка.
self.list_store = gtk.ListStore(str, str, int)
self.list_store.append([u'код1', u'имя1', 11])
self.list_store.append([u'код2', u'имя2', 22])
self.list_store.append([u'код3', u'имя3', 33])
# отображает данные, хранящиеся в list_store
self.tree_view = gtk.TreeView(model=self.list_store)
# добавляем колонки в tree_view
self.add_column(self.tree_view, u'Код', 0)
self.add_column(self.tree_view, u'Наименование', 1)
self.add_column(self.tree_view, u'Количество' , 2)
self.window.add(self.tree_view)
self.window.show_all()
def add_column(self, treeview, title, columnId, sortable=True):
column = gtk.TreeViewColumn(title, gtk.CellRendererText(), text=columnId )
column.set_resizable(True)
column.set_sort_column_id(columnId)
treeview.append_column(column)
if __name__ == "__main__":
mytable = MyTable()
gtk.main()
Попробую использовать TreeView
bw
Янв. 14, 2010 09:38:56
> В том же Torrent-клиенте Deluge
Я там таблицы не видел. Видел только список, с этим проблем нет.
Может я что-то не понял, уточни запрос :-). Под таблицами я понимаю, по примеру, “рабочее поле” Excel. Такие виджеты есть в Delphi, wxWidgets и т.д. В отличие от списков, которые представляет нам GTK (где единицей данных является строка) в таблицах единицей данных (или ед. измерения, как удобнее) является ячейка. В списках GTK без хаков (если вообще это реально) нельзя работать с произвольным набором ячеек (а не целым рядом/строкой), например с вертикальным (или выбранным как-то иначе, не так очевидно и системно), так же не получится нарисовать контекстное (если я всё правильно забыл) меню индивидуальное для каждой ячейки, выполнить “перетаскивание” ячейки и дофига другого. Это именно то, что мне иногда бывает нужно, но GTK не дает.
p.s. Может посмотреть как OOo Calc сделано? Хотя я догадываюсь какой там объем кода :-).
p.p.s. wxWidgets под Linux сделан на GTK и там есть таблицы, можно глянуть и тыркнуть :-).
..bw
expee
Янв. 14, 2010 11:20:46
А что gtk.Table не дает таблицу? Заполняешь циклом все ячейки текстовыми полями и дальше работаешь с ними.
Можно глянуть в сторону GtkSheet из проекта
gtkextra.sourceforge.net На скриншоте пример снизу слева:
http://scigraphica.sourceforge.net/images/data.jpg
bw
Янв. 14, 2010 12:13:16
Я про него говорил, GtkSheet (GtkExtra) для GTK1 (а может есть и для второго, но какие-то проблемы в своё время возникли, не помню, некогда сейчас этой хренью страдать). По дате проект давно не жив, это плохой знак.
> А что gtk.Table не дает таблицу?
Не смешно.
p.s. Разговор не по существу предлагаю опустить. Найдешь решение - свистни.
..bw
Psixo
Янв. 19, 2010 16:52:13
Я там таблицы не видел. Видел только список, с этим проблем нет.
Может я что-то не понял, уточни запрос :-). Под таблицами я понимаю, по примеру, “рабочее поле” Excel. Такие виджеты есть в Delphi, wxWidgets и т.д. В отличие от списков, которые представляет нам GTK (где единицей данных является строка) в таблицах единицей данных (или ед. измерения, как удобнее) является ячейка.
Надо именно таблицу,для начала поработаю со списками,но этого точно не хватит для решения поставленной задачи. =\
Найдешь решение - свистни.
Поиск меня пока приводит к грустным мыслям = (