Найти - Пользователи
Полная версия: Tkinter: Колонки текста
Начало » GUI » Tkinter: Колонки текста
1 2
vanvanov
Добрый день. Можно ли на базе виджета Text в tkinter сделать текст с колонками (наподобие газетной статьи)? Можно ли сделать несколько колонок в единственном виджете? Можно ли автоматически подгонять эту структуру при изменении размеров окна?

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

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

По поводу такого многоколоночного виджета давайте кинем клич. Читатели если бы такой виджет был вы бы им воспользовались? Я нет. Не представляю где это может оказаться удобно в десктоп приложении (Приложение это не книга не статья и даже не сайт с контентом). Думаю максимум процент наберете последователей. Поэтому и нет такого элемента.
vanvanov
doza_and
Правда у них не офсет.
Я проработал какое-то время в издательстве, но в данном случае верстка у меня не приоритет.
Сейчас вам предложат кучу решений как сделать колонки шириной в одну букву.
Пускай. Одна буква - это переменная
По поводу такого многоколоночного виджета давайте кинем клич. Читатели если бы такой виджет был вы бы им воспользовались? Я нет.
Ну, чтобы был понятен юзкейс, взгляните на эту страницу. Я хочу получать примерно такое же разделение, как между названием словаря и термином (вообще, в идеале неплохо бы каждый термин делать с новой строки или в виде колонки или в виде какой-нибудь лесенки). А получается вот такая каша. При этом мне нужен анализ текста, поэтому веб-движок не использую.
Не представляю где это может оказаться удобно в десктоп приложении
Я, вообще говоря, не поклонник “Метро” и приложений под него, но взгляните, как выглядит новостное приложение. По-моему, вполне достойно.
doza_and
Да стало гораздо яснее. Это текст.
vanvanov
При этом мне нужен анализ текста, поэтому веб-движок не использую.
Осталось прояснить почему веб-движок и анализ текста противоречат. Друг другу. (Прошу извинить но последнее время у меня почти все что было Tkinter,Qt и т.п. переехало под web). В Qt,wxWidgets есть контролы для отображения html. Там должно хватить функционала на ваши нужды.
Для Tk не припоминаю такой возможности. Может вам простое решение подойдет? Jтделить ключик и значение табуляцией. И задать ей размер побольше. Она исходно для этого и предназначена.
vanvanov
doza_and
В Qt,wxWidgets есть контролы для отображения html. Там должно хватить функционала на ваши нужды.
Если там можно удалять тэги, копировать и выделять текст в тэгах, то, возможно, пойдет. Я просто помимо tkinter ничего еще не изучал. Tk неплохо так уже кровушки попил, поэтому побоялся осваивать новый GUI.
Jтделить ключик и значение табуляцией. И задать ей размер побольше. Она исходно для этого и предназначена.
Спасибо за намек. Получилось вот так. Немного читаемее, наверное. Но в идеале, я думаю, проще всего “распарсить” текст глазами, когда он выглядит вот так. Возможно, в этом мне поможет tk.Table?
doza_and
Думаю будет правильнее взять Qt. Вы ничего не сказали о том почему не подходит чисто Web технология. Те сервер + броузер для отображения. Такая связка как раз предназначена для показа текста с разным форматированием.
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