Найти - Пользователи
Полная версия: PyGTK и таблица
Начало » GUI » PyGTK и таблица
1 2
Psixo
Есть готовый видгет таблицы или нет? Только сейчас стал осваивать GUI, интерфейс собирал через glade-3 и там ничего подходящего не нашел. Какие варианты?
Psixo
И тишина … =)
Psixo
http://www.pygtk.org/pygtktutorial/ch-clistwidget.html единственное что пока нашел.
bw
Я тоже не нашел, ни тогда, ни сейчас.
Встречал третью разработку для GTK1, вроде то что надо, но мне GTK1 ни к чему.
Руки чешутся на Vala виджет нарисовать, очень мне Vala нравится, но всё некогда разобраться с этим языком.
Psixo
Но ведь как-то делают таблицы в GTK приложениях. В том же Torrent-клиенте Deluge
Psixo
#!/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
> В том же Torrent-клиенте Deluge

Я там таблицы не видел. Видел только список, с этим проблем нет.
Может я что-то не понял, уточни запрос :-). Под таблицами я понимаю, по примеру, “рабочее поле” Excel. Такие виджеты есть в Delphi, wxWidgets и т.д. В отличие от списков, которые представляет нам GTK (где единицей данных является строка) в таблицах единицей данных (или ед. измерения, как удобнее) является ячейка. В списках GTK без хаков (если вообще это реально) нельзя работать с произвольным набором ячеек (а не целым рядом/строкой), например с вертикальным (или выбранным как-то иначе, не так очевидно и системно), так же не получится нарисовать контекстное (если я всё правильно забыл) меню индивидуальное для каждой ячейки, выполнить “перетаскивание” ячейки и дофига другого. Это именно то, что мне иногда бывает нужно, но GTK не дает.

p.s. Может посмотреть как OOo Calc сделано? Хотя я догадываюсь какой там объем кода :-).

p.p.s. wxWidgets под Linux сделан на GTK и там есть таблицы, можно глянуть и тыркнуть :-).

..bw
expee
А что gtk.Table не дает таблицу? Заполняешь циклом все ячейки текстовыми полями и дальше работаешь с ними.

Можно глянуть в сторону GtkSheet из проекта gtkextra.sourceforge.net На скриншоте пример снизу слева: http://scigraphica.sourceforge.net/images/data.jpg
bw
Я про него говорил, GtkSheet (GtkExtra) для GTK1 (а может есть и для второго, но какие-то проблемы в своё время возникли, не помню, некогда сейчас этой хренью страдать). По дате проект давно не жив, это плохой знак.

> А что gtk.Table не дает таблицу?
Не смешно.

p.s. Разговор не по существу предлагаю опустить. Найдешь решение - свистни.

..bw
Psixo
Я там таблицы не видел. Видел только список, с этим проблем нет.
Может я что-то не понял, уточни запрос :-). Под таблицами я понимаю, по примеру, “рабочее поле” Excel. Такие виджеты есть в Delphi, wxWidgets и т.д. В отличие от списков, которые представляет нам GTK (где единицей данных является строка) в таблицах единицей данных (или ед. измерения, как удобнее) является ячейка.
Надо именно таблицу,для начала поработаю со списками,но этого точно не хватит для решения поставленной задачи. =\

Найдешь решение - свистни.
Поиск меня пока приводит к грустным мыслям = (
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB