Три кнопки одинаковой ширины

6yrop

Интересно как подобные проблемы решаются в разных технологиях HTML, Java, .NET?
Есть три кнопки расположенные по горизонтали, см. нижнюю часть рисунка

Текст на всех трех кнопках может быть разным и может меняться, например, в зависимости от выбранного языка. Как делается такой layout?
То что предлагается d walkthrough не нравится:
1. не совсем ясно как это работает – к чему подстраивается кнопка, толи к внутреннему тексту, толи к ширине ячейки
2. это работает только, если вставляется более широкий текст, т.е. кнопки не подстраиваются к более узкому тексту
3. если на первой кнопке написать “Add Text2”, размер кнопок увеличится, хотя видно, что этот текст умещается на кнопке без увеличения размеров кнопки
Вообще, алгоритм layout-а такой: выбирается максимально широкий текст на кнопках и размеры всех трех кнопок определяются шириной этого текста.
P.S. можно поместить в каждую из ячеек по 3 невидимых и 1 видимую ячейку... и все будет работать как надо, но это слишком громоздко

Marinavo_0507

постоянный размер в пикселах ставят, и всё

enochka1145

GridLayout?

6yrop

там это делается? только через выставления свойств?

enochka1145

Думаю, да. Поищи соответствующий sample - такой обязательно должен быть.

6yrop

Думаю, да.
хотелось бы узнать мнение человека, который сталкивался с этим

enochka1145


Ну я "человек, который сталкивался с этим". Ты GUI когда-нибудь программировал? Ясно, что можно задать Layout, а для чего-то вроде GridLayout - ещё и GridData. Но кто тебе это будет держать в голове всё время, кроме того, кто кроме GUI ничем более не занимается. Иди ботай sample-ы и читай Javadoc-и, никто за тебя этого делать не будет. Я - точно нет, я с Java/SWT (не говоря уж о тупом Swing) распрощался в прошлом году.

6yrop

если не можешь ничего сказать по делу, то лучше промолчать, а то может ты не понял о чем речь

danilov

Вообще, он по делу сказал. Именно GridLayout. То, что тебе влом посмотререть сообветсвубщий Javadoc - исключительно твои проблемы.
А там всё написано - ботай, что такое vgap и hgap.

6yrop

Вообще, он по делу сказал. Именно GridLayout. То, что тебе влом посмотререть сообветсвубщий Javadoc - исключительно твои проблемы.
А там всё написано - ботай, что такое vgap и hgap.
ок, раз вы так настаиваете посмотрю java-доки, когда будет время. Но при первом беглом просмотре кажется, что это не то
http://java.sun.com/j2se/1.3/docs/api/java/awt/GridLayout.ht...

setVgap
public void setVgap(int vgap)Sets the vertical gap between components to the specified value.
Parameters:
vgap - the vertical gap between components.

это к чему?

6yrop

Вообще, было бы интересно как это реализовывается на HTML.

enochka1145

Ну ты и лентяй! Специально для таких как ты есть мегасампл, где обсасываются все тонкости лэйаутов. А тебе всё мало.
Вообще, было бы интересно как это реализовывается на HTML.

Ждём, когда появится "Вообще, было бы интересно как это реализовывается на Qt."

danilov

hgap - это расстояние между твоими кнопками.
+ Надо выставить минимальный размер ячейки и выравнивание по правому краю (наприаер, сунув в другой layout).

6yrop

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

danilov

Можно выставить размер одной кнопки, остальные доресайзятся до неё.

6yrop

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

enochka1145

Ты уже мог 128'000 раз установить JDK и скопипэйстить кусочек нужного тебе сампла.

6yrop

ты столько же раз мог написать пару предложение, где мог объяснить как это делается, если конечно ты понял о чем речь

enochka1145

Н-да, тяжёлый случай . Попытайся понять, что можно долго говорить про layout-ы, spacing-и, margin-ы и прочую GUI-ботву, но... Одна картинка (пардон, демка) стоит тысячи слов. Тебе всего-то надо поиграть с ней и в нужный момент скопировать код, причём хорошая демка даст именно нужный код (тот, что соответствует тому, с чем ты в данный момент играешься).
Если бы ты хоть уточнил... скажем, "Java/Swing". Или: "Java/SWT". А так - кому охота перебирать для тебя все случаи? Чтобы потом узнать, что вообще-то ты на Motif работаешь, просто постеснялся сказать об этом в первом посте.

6yrop

я на .NET . Семплы попробовал. В первом посте ссылка на один из семплов (и картинка оттуда но в семпле есть недостатки см. первый пост
Оставить комментарий
Имя или ник:
Комментарий: