Макет GUI - как? - PullRequest
       11

Макет GUI - как?

0 голосов
/ 26 июня 2010

В последнее время я работаю с несколькими разработчиками графического интерфейса. Я абсолютно презираю CSS (верблюд - это лошадь, разработанная комитетом и т. Д.). Какие алгоритмы используются менеджерами по упаковке (java / tk). Большинство наборов инструментов с графическим интерфейсом, которые я использовал, имеют некоторую альтернативу абсолютному позиционированию, извините за неоднозначность, но как вы начинаете думать о реализации менеджера упаковки на языке X.


Спасибо за ответы, чтобы уточнить - я хочу создать общий текстовый файл, который определяет «форму», которую этот файл формы можно затем использовать для создания собственной (ish) формы GUI (например, tk), а также HTML-формы .

Что я ищу, так это несколько указателей о том, как реализован менеджер упаковки на основе сетки, чтобы я мог сформулировать свой общий текстовый файл на основе некоторой формы установленной логики.

Если это не имеет смысла для вас, тогда вы понимаете меня :). Некоторые заметки
1. XML живет в той же конюшне, что и зебра и верблюд, но не лошадь.
2. Подумайте об облегченных языках разметки (Markdown / ReStructuredText), но для простых форм.
3. Это, вероятно, уже реализовано, вы знаете где?
4. Да, я гуглил это (много-много раз), ответ был не между G1 и o2
Thks

1 Ответ

3 голосов
/ 26 июня 2010

Тк имеет три метода. Один - абсолютное позиционирование, два других называются «сеткой» и «паком».

сетка - это то, на что это похоже: вы размещаете свои виджеты в сетке. Существуют варианты охвата строк и столбцов, расширения (или отсутствия) для заполнения ячейки, обозначения строк или столбцов, которые могут расти, и т. Д. Вероятно, вы можете решить 90% всех проблем макета с помощью менеджера геометрии сетки.

Другой менеджер - «пакет», и он работает, запрашивая размещение виджетов с одной или другой стороны (сверху, снизу, слева, справа). Это удивительно мощный инструмент, и с помощью вложенных контейнеров (называемых фреймами в tk) вы можете выполнить практически любой макет. Пакет особенно удобен, когда вещи располагаются в одном направлении, например, горизонтально для панели инструментов, вертикально для основного приложения (панель инструментов, основная область, строка состояния).

Как сетка, так и пакет очень мощные и простые в использовании, и между ними можно решить любую проблему с макетом. Меня удивляет, почему в Java и wxPython так много и таких сложных менеджеров геометрии, когда можно обойтись не более чем тремя.

...