LINUX.ORG.RU

Свой виджет в Tkinter


0

1

Возможно-ли в Tkinter переопределить метод рисующий виджет? Нужен ListBox, но с выводом данных, генерируемых на лету.

Гуглинг показывает, что нельзя. Может я не так гуглю?

★★★★

Ничего не понял. Берете, клепаете свой виджет, со своим методом отрисовки-как-Вам-хочется и вперед... только что Вы под отрисовкой тут понимаете?;-)

Обычно свои виджеты собираются из уже существующих, в Вашем случае так вообще надо прикрутить обновление содержимого по какому нить событию и не мучаться. Можно это оформить как свой виджет, можно не оформлять - дело вкуса...

AIv ★★★★★
()
Ответ на: комментарий от AIv

У Tk очень бедный API. Обычно можно перегрузить медод типа draw(), paint() и т.д. Но тут похоже, что нельзя.

У меня задача сделать ListBox на несколько миллионов записей, где текст самой записи берется из БД. Нужно показать несколько строк начиная с позиции отмечено ScrollBar-ом.

Удалять и добавлять новые записи при изменении положения ScrollBar-а - это бред.

alexru ★★★★
() автор топика
Ответ на: комментарий от AIv

ЗЫ ну можно и весь листбох по афтер менять... но у меня смутное ощущение, что если появился листбох не неск миллионов строк значит что то уже с дизайном не так - с ним же работать невозможно будет...

AIv ★★★★★
()
Ответ на: комментарий от AIv

Нормально с ним работать. Не хотелось лишних зависимостей тащить для простой программы. Видимо остановлюсь на wxWidgets. GTK и QT уж больно монструозны.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

клёпание своих виджетов - см. snit и tcloo

по поводу «на несколько миллионов записей, где текст самой записи берется из БД» - стоит смотреть не на listbox, а на tktreectrl - MVC контроллер/компонент/виджет для деревьев/списков/таблиц с блек-джеком и шлюхами.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Идея была избежать использования доролнительных пакетов, так как должно работать на Linux, Win, MAC и не хочется возиться с разными методами установки и предоставлять инструкцию по настройке всего этого.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

GTK и QT уж больно монструозны.\

Ой, таки шо вы гоорите? Фреймворки как фреймворки, просто ну урезанные, как Tkinter, gtk уж точно на любой системе есть, qt - почти на любой.

Xenon ★★★
()
Ответ на: комментарий от Xenon

должно работать на Linux, Win, MAC

Под win, например, для простой программы нужно поставить:

gtk-2.12.9-win32-1.exe gtkmm-win32-runtime-2.10.11-1.exe pygobject-2.14.1-1.win32-py2.5.exe pygtk-2.12.1-2.win32-py2.5.exe

MAC я вообще не видел и не знаю что там нужно, чтобы оно заработало.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Cтавишь Gtk+(на сайте gtk.org даже инсталяха есть готовая) и вперёд. Предполагается, что на машине уже стоит какая-нибудь «студия», для сборки своей мегасофтины. Если нет, ставим MinGW и не паримся, всё работает :)

xterro ★★★★★
()
Ответ на: комментарий от alexru

Не хотелось лишних зависимостей тащить для простой программы. Видимо остановлюсь на wxWidgets. GTK и QT уж больно монструозны.

wxWidgets уже перестали быть оберткой Gtk?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Под линуксом нет, не перестали, но меня больше волнуют Win пользователи, которых большинство.

alexru ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.