Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 10, 2010 20:10:22

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

Есть готовый видгет таблицы или нет? Только сейчас стал осваивать GUI, интерфейс собирал через glade-3 и там ничего подходящего не нашел. Какие варианты?



Офлайн

#2 Янв. 11, 2010 09:53:43

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

И тишина … =)



Офлайн

#3 Янв. 12, 2010 20:07:50

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

http://www.pygtk.org/pygtktutorial/ch-clistwidget.html единственное что пока нашел.



Офлайн

#4 Янв. 13, 2010 06:27:55

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

PyGTK и таблица

Я тоже не нашел, ни тогда, ни сейчас.
Встречал третью разработку для GTK1, вроде то что надо, но мне GTK1 ни к чему.
Руки чешутся на Vala виджет нарисовать, очень мне Vala нравится, но всё некогда разобраться с этим языком.



Офлайн

#5 Янв. 13, 2010 16:34:38

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

Но ведь как-то делают таблицы в GTK приложениях. В том же Torrent-клиенте Deluge



Офлайн

#6 Янв. 13, 2010 16:43:59

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

#!/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



Офлайн

#7 Янв. 14, 2010 09:38:56

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

PyGTK и таблица

> В том же Torrent-клиенте Deluge

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

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

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

..bw



Отредактировано (Янв. 14, 2010 09:40:59)

Офлайн

#8 Янв. 14, 2010 11:20:46

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

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

Можно глянуть в сторону GtkSheet из проекта gtkextra.sourceforge.net На скриншоте пример снизу слева: http://scigraphica.sourceforge.net/images/data.jpg



Офлайн

#9 Янв. 14, 2010 12:13:16

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

PyGTK и таблица

Я про него говорил, GtkSheet (GtkExtra) для GTK1 (а может есть и для второго, но какие-то проблемы в своё время возникли, не помню, некогда сейчас этой хренью страдать). По дате проект давно не жив, это плохой знак.

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

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

..bw



Отредактировано (Янв. 14, 2010 12:14:14)

Офлайн

#10 Янв. 19, 2010 16:52:13

Psixo
От:
Зарегистрирован: 2007-09-12
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK и таблица

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

Найдешь решение - свистни.
Поиск меня пока приводит к грустным мыслям = (



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version