Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2015 00:56:56

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

Добрый день. Можно ли на базе виджета Text в tkinter сделать текст с колонками (наподобие газетной статьи)? Можно ли сделать несколько колонок в единственном виджете? Можно ли автоматически подгонять эту структуру при изменении размеров окна?

P.S. Раз уж спросил про автоподгонку, задам дополнительный вопрос, чтобы не плодить новые темы на форуме. Предположим, я создал фрейм с графическими кнопками (toolbar). У кнопок фиксированный размер (рисунки для них в GIF). Что делать, если пользователь поставил слишком низкое разрешение экрана или же задал такие размеры окна, при которых тулбар оказывается усеченным (не влезает по горизонтали в видимое пространство окна)? Есть ли какие-нибудь механизмы, чтобы, например, автоматически переносить кнопки в другой ряд или, может, можно сделать кнопки на базе векторных рисунков, чтобы их размер подгонялся автоматически?

Офлайн

#2 Сен. 12, 2015 01:20:10

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

vanvanov
Добрый день. Можно ли на базе виджета Text в tkinter сделать текст с колонками (наподобие газетной статьи)? Можно ли сделать несколько колонок в единственном виджете? Можно ли автоматически подгонять эту структуру при изменении размеров окна?

А почему именно нужно в единственном. Можно сделать три виджета и они будут просто незаметными…

Офлайн

#3 Сен. 12, 2015 12:42:31

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

4kpt_III
Потому что колонок может быть произвольное количество. Кроме того, увеличивается объем кода.

Офлайн

#4 Сен. 12, 2015 13:59:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

vanvanov
Потому что колонок может быть произвольное количество
А чем определяется их количество? А кто мешает в рантайме напихивать произвольное число виджетов в менеджер размещения?
Многоколоночный текст это обычно при верстке журналов бывает. Там системы верстки и используются Latex, или веб решения для верстки html



Офлайн

#5 Сен. 12, 2015 17:02:03

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

doza_and
А чем определяется их количество?
В целом, длительностью текста, т.е. сколько помещается на экране колонок, столько и желательно сделать.
А кто мешает в рантайме напихивать произвольное число виджетов в менеджер размещения?
Т.е. все равно вручную просчитывать, сколько текста может поместиться на каждый виджет? Это же менее удобно, чем если бы уже был, например, системный виджет TextColumn, который сам бы просчитывал все эти вещи. К тому же, в рамках одного виджета удобнее перемещаться по тексту. Вдобавок, виджеты не нужно будет синхронизировать между собок в случае перемотки и т.п., т.е., меньше вручную писать кода.
Там системы верстки и используются Latex, или веб решения для верстки html
Ну, обычно используют InDesign, но эти решения здесь все равно не подходят. Мне править текст внутри колонок не нужно, но потенциально у пользователя будет возможность увеличить шрифт, и тогда текст “поедет”, и как результат, придется снова просчитывать, сколько текста влезает. Я просто думал, что есть возможность уменьшить ручную работу.

Офлайн

#6 Сен. 12, 2015 19:07:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

vanvanov
Ну, обычно используют InDesign
Интересно. У меня приятель в типографии работает. Мы с ним частенько разные темы обсуждаем. InDesign они не используют. Правда у них не офсет. Если у вас выбран основной инструмент или их кластер то думаю продуктивнее управлять из Питона этими пакетами и программами чем пытаться воспроизвести довольно специфические особенности на десктопе.
vanvanov
сколько помещается на экране колонок,
Учитывайте что мы тут просто программисты. Сейчас вам предложат кучу решений как сделать колонки шириной в одну букву. И предложат ограничиться моноширинными шрифтами чтобы колонки красивее получились.

По поводу такого многоколоночного виджета давайте кинем клич. Читатели если бы такой виджет был вы бы им воспользовались? Я нет. Не представляю где это может оказаться удобно в десктоп приложении (Приложение это не книга не статья и даже не сайт с контентом). Думаю максимум процент наберете последователей. Поэтому и нет такого элемента.



Отредактировано doza_and (Сен. 12, 2015 19:17:54)

Офлайн

#7 Сен. 12, 2015 21:07:28

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

doza_and
Правда у них не офсет.
Я проработал какое-то время в издательстве, но в данном случае верстка у меня не приоритет.
Сейчас вам предложат кучу решений как сделать колонки шириной в одну букву.
Пускай. Одна буква - это переменная
По поводу такого многоколоночного виджета давайте кинем клич. Читатели если бы такой виджет был вы бы им воспользовались? Я нет.
Ну, чтобы был понятен юзкейс, взгляните на эту страницу. Я хочу получать примерно такое же разделение, как между названием словаря и термином (вообще, в идеале неплохо бы каждый термин делать с новой строки или в виде колонки или в виде какой-нибудь лесенки). А получается вот такая каша. При этом мне нужен анализ текста, поэтому веб-движок не использую.
Не представляю где это может оказаться удобно в десктоп приложении
Я, вообще говоря, не поклонник “Метро” и приложений под него, но взгляните, как выглядит новостное приложение. По-моему, вполне достойно.

Офлайн

#8 Сен. 12, 2015 23:27:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

Да стало гораздо яснее. Это текст.

vanvanov
При этом мне нужен анализ текста, поэтому веб-движок не использую.
Осталось прояснить почему веб-движок и анализ текста противоречат. Друг другу. (Прошу извинить но последнее время у меня почти все что было Tkinter,Qt и т.п. переехало под web). В Qt,wxWidgets есть контролы для отображения html. Там должно хватить функционала на ваши нужды.
Для Tk не припоминаю такой возможности. Может вам простое решение подойдет? Jтделить ключик и значение табуляцией. И задать ей размер побольше. Она исходно для этого и предназначена.



Офлайн

#9 Сен. 13, 2015 02:32:00

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

doza_and
В Qt,wxWidgets есть контролы для отображения html. Там должно хватить функционала на ваши нужды.
Если там можно удалять тэги, копировать и выделять текст в тэгах, то, возможно, пойдет. Я просто помимо tkinter ничего еще не изучал. Tk неплохо так уже кровушки попил, поэтому побоялся осваивать новый GUI.
Jтделить ключик и значение табуляцией. И задать ей размер побольше. Она исходно для этого и предназначена.
Спасибо за намек. Получилось вот так. Немного читаемее, наверное. Но в идеале, я думаю, проще всего “распарсить” текст глазами, когда он выглядит вот так. Возможно, в этом мне поможет tk.Table?

Офлайн

#10 Сен. 13, 2015 15:52:45

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Tkinter: Колонки текста

Думаю будет правильнее взять Qt. Вы ничего не сказали о том почему не подходит чисто Web технология. Те сервер + броузер для отображения. Такая связка как раз предназначена для показа текста с разным форматированием.



Отредактировано doza_and (Сен. 13, 2015 15:53:13)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version