Найти - Пользователи
Полная версия: Помогите разобраться с Ttk
Начало » GUI » Помогите разобраться с Ttk
1 2
MAN
Здравствуйте, прошу прощения, но есть вопрос по Ttk и Tile. Поиском пользовался, но везде как то отрывочно написано, не могу собрать все в кучу в голове и до конца разобраться.
Собираюсь писать проектик, по началу небольшой но с дальнейшей перспективой масштабирования. Решил остановиться на архитектуре MVC.
Питон: 2.6
Присматривался к различным библиотекам, в итоге решил остановиться на Тк, но внешний вид нативного отпугивает, поэтому решил разобраться с обертками для темизации виджетов.
1. Поясните пожалуйста, чем отличаются Ttk и Tile?
2. Что лучше из них использовать и где скачать?
3. Какой из этих проектов живой и развивается?
Из дополнительных библиотек планирую использовать:
1. SciPy
2. NumPy
3. Matplotlib
4. ReportLab
5. еще посоветуйте библиотеку для работы с xml?
Что необходимо из виджетов:
1. Меню
2. Тулбар
3. Статусбар
4. Прогрессбар
5. Закладки (Табы)
6. Скроллы
7. Счетчики
8. Просмотрщик в виде дерева без ограничений глубины дерева.
9. Поле для ввода текста многострочное с поддержкой отображения форматированного текста
10. Очень хочется вот такой виджет: tktable, последняя версия - только сырцы, как из них собрать под основные платформы?

Буду очень признателен за помощь в выборе.
З.Ы. Перехожу на питон с дотнета, не пинайте сильно ногами. Из всего выше изложенного, может быть лучше использовать другую граф. библиотеку QT или wxWidgets?
Спасибо!
MAN
Забыл еще спросить, насколько сложна у Тк работа с графическими примитивами?, например сделать небольшой дизайнер для расстановки блоков вывода текста в отчете.
GDK
MAN
Перехожу на питон с дотнета
А интересно зачем?

Я вот “перехожу” с VB6, т.е. скорее с ВБА. Потому что: многопоточность, гимор с активИкс и длл(надо устанавливать, регистрировать и проч.), портабельность IDE, всё же недостаточность ГУИ, ну и кроссплатформенность можно сюда же прилепить, хотя мне она по барабану сейчас.
Почему на Питон?:
Ну вначале я думал что лучше идти к Java. И вобщем то уже туда пошёл и зашел достаточно далеко, НО оказалось что там практически очень и очень неудобно работать с COM, а без этого мне никак - большинство кода пишу для себя (облегчение труда, ускорение работы, исключение/отлов/уменьшениеКоличества ошибок - короче стараюсь рутину поручить компу как можно больше). А в Питоне вроде как с этим более/менее нормально. Хотя глубоко пока не вникал ещё. Это и стало решающим фактором(причём в общем то единственным) в прекращении изучения Java.

Ну и вот мои субъективные ощущения от этих 3-х языков:
1. VB - первый язык, с которого я начал более/менее нормальное общение с компом. Спасибо Microsoft надо за него сказать. Самообучился достаточно быстро и сделал несколько вещей, облегчающих жизнь, уже в процессе обучения. Документации много, причём на русском, порадовала простота сотворения ГУИ - 5+ за это, удобство IDE(автодополнение, отладка, визуальное проектирование ГУИ). Недостатки перечислил ранее, к ним надо добавить плохую обработку ошибок, отстойная поддержка ООП. Недавно натолкнулся на портабельную IDE для VB6. Если бы это произошло раньше, я вряд ли стал бы думать о переходе на к-либо др. язык.
2. Java. Хорошо там почти всё. Перед её выбором были мыслишки о .NET, но быстро от них отказался в пользу Java в результате чтения отзывов людей в Инете, дискуссий и т.п. Сразу оказалось что Java машина “не требует” установки. В кавычках потому что установить надо, но работать будет на других компах, если даже её просто скопировать на флэшку и использовать в дальнейшем. То же самое для IDE. NetBeans имеется портабельная. Работать с ГУИ посложнее конечно чем VB но всё же удобно и всё есть что нужно, говорят работает SWING без глюков и он встроен. Синтаксис вполне устраивает, нравится жёсткая типизация. Насчёт организации модульности и расширяемости не помню, но кажется с этим всё в порядке(не сравнить с активИкс и т.п.). Документации тоже много и много на русском. Вроде всё сказал.
3. Питон. Начал изучение с синтаксиса и идеологии. Вполне всё сносно и довольно удобно. Дальше IDE и интерпретатор. Нашёл портабельный питон и портабельную IDE, хотя это было небыстро. Попробовал кое что сделать, были проблемы с идеологией, но разобраться с этим можно и к тому же получить компактность кода и др. приколюхи. Порадовала возможность удобной модульности. import и всё ОК. Проблемы только с путями к модулям у меня были, но это чисто моя проблема (думал можно указать полный путь до модуля). С пакетами пока не работал. Пока упёрся в ГУИ. Ткинтер не понравился - недостаточно виджетов, выглядят как то не очень. Примочки к нему я так и не понял как сделать, хотя вроде пытался. PyQt оказался непортабельным, хотя понравилась идеология больше всего. Выбор пал на wxPython - портабельная версия идёт в комплекте с портабельным питоном. На этом сейчас шаге и остановился. Просто время нет для изучения пока, но думаю всё получится потому как начальные шаги уже сделаны успешно. Порадовало также наличие встроеных библиотек, т.е. их разнообразие. Питон - интерпретируемый, а значит удобен в отладке, хотя отладчиками пользоваться не научился пока. VBA тоже интерпретируемый кстати. Высокая скорость работы программ мне не требуется, но то с чем пришлось сталкиваться вполне устраивает. Удобное ООП. Ну к работе с COM я пока даже не прикасался. Пока субъективное мнение такое, что работа с ГУИ тяжелее чем в Java и тем более VB(A).
Ну вот как то так. Теперь интересно мнение по сравнению с .NET.
MAN
GDK
я перехожу из двух соображений:
1. это открыто и бесплатно
2. это кроссплатформенно
дальнейшие мои умозаключения думаю мало кому интересны, хотелось бы получить ответы на вопросы выше!!!
GDK
Tile не знаю правильно или нет, но по моему это украшалка для ткинтера. Я так и не сумел понять как её поставить и пользоваться. То же и с др. библиотеками. Поэтому остановился на wxPython, в котором вроде как больше виджетов и они красивее. И он уже в комплекте с питоном 2.6. Но есть один косяк - не хочет дружить с IDE PyScripter или наоборот. Просто зависает и ни на что не реагирует если пробовать запустить модуль с использованием wxPython. В консоли тот же модуль нормально запускается и закрывается, поэтому всё же можно пользоваться. На крайняк можно ещё к-нибудь IDE поробовать для работы с ним.
MAN
GDK
Извините, но на сколько я понял wxPython не идет в комплекте ни с одной версией Питона, это сторонняя библиотека и враппер к ней тоже сторонняя разработка. Меня в принципе устраивает Тк, в особенности если её темизировать, и добавить нужные пару виджетов. Большое спасибо Вам за Вашу помощь! Хотелось бы также услышать ответы местных гуру, которые просто игнорируют топик… эхх придется идти бороздить просторы инета дальше…
Андрей Светлов
MAN
С Tk практически не возился - это Балу, если не ошибаюсь, по ней спец.
В любом случае вам потребуются какие-либо внешние библиотеки.
И, скорее всего, прийдется собирать свой standalone distribution. На Винде для этого существует py2exe. Есть свои решения для Mac и Linux.
После этого уже не важно, входит GUI в стандартную поставку или нет.
MAN
Андрей Светлов, в принципе согласен с вами, что придется собирать свой standalone distribution, хотя возможен и вариант, что будут распространяться только сами питоновские файлы (для Линукса остальные библиотеки из репозитариев можно поставить). Порылся еще по Нету, насколько понял Ttk и Tile это разные проэкты. Каким таки порекомендуете воспользоваться? И все-таки по поводу вопросов выше виджеты, граф. примитивы, слышал что в Qt неплохо организована работа с граф. примитивами, если не ошибаюсь есть такой объект или метод Painter который отвечает за отрисовку и расположение элементов.
regall
Я бы советовал использовать Ttk, так как начиная с версии Python 2.7 он входит в стандартную поставку.
MAN
regall на сайте питона нашел только последние стабильные версии: 2.6.3 и 3.1.1, а где 2.7? В 3.1. написано, что Ttk уже в дистрибе идет, но эта версия мне не подходит, так как библиотеки перечисленные выше отсутствуют под эту версию.
Спасибо за помощь!
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