#haskell #threepenny-gui
#haskell #threepenny-графический интерфейс
Вопрос:
Как мне изменить размер и положение кнопок или других элементов пользовательского интерфейса в графическом интерфейсе, созданном с помощью пакета threepenny-gui?
В документации Graphics.UI.Threepenny.Attributes
перечислены некоторые функции, которые, вероятно, полезны, такие как coords :: WriteAttr Element String
. Однако я не понимаю, как их использовать. В частности, я не понимаю, каким должен быть String
аргумент.
Спасибо
Комментарии:
1. github.com/HeinrichApfelmus/threepenny-gui/blob/master/samples/…
2. @MichaelLitchard Я бы сказал, что это жестко. OP явно провел некоторое исследование (и не заметить папку samples — это то, что может случиться с кем угодно), и использование комбинаторов компоновки Threepenny, какими бы хорошими они ни были, не совсем понятно.
3. Спасибо за ваши ответы. Я просмотрел все примеры файлов, включая тот, что приведен в ссылке, но я не нашел ни одного примера, где был изменен размер или положение кнопок. Просматривая это снова, я все еще не вижу ни одного примера этого. Я действительно думаю, что теперь я нашел ответ на свой вопрос, но, если я правильно понимаю, я должен опубликовать это как ответ вместо комментария, поэтому я сделаю это.
4. @AR1981 Да, автоответчик — это правильная вещь, если вы решили ее самостоятельно.
5. @duplode достаточно справедливо, удален понижающий голос.
Ответ №1:
Я думаю, что мое недопонимание, которое у меня было, заключалось в том, что моя проблема на самом деле не была связана с threepenny-gui, а вместо этого является вопросом о HTML. Эта ссылка помогла мне найти ответ, который я искал:https://www.geeksforgeeks.org/html-attributes /
На всякий случай, если кто-то еще тоже борется с этим, эта строка (в основном) решает эту проблему:
# set UI.style [("text-align", "center"),("color","red"),("font-size","30px")]
(Пользовательский интерфейс в UI.style взят из: import qualified Graphics.UI.Threepenny as UI
)
Комментарии:
1. Я предлагаю добавить к вопросу достаточное количество окружающего кода, чтобы люди, читающие это, могли четко видеть, что вы исправили.
Ответ №2:
Комбинаторы элементов пользовательского интерфейса Threepenny более или менее напрямую переводятся в HTML, и поэтому вы должны думать в терминах HTML при создании макета с ним:
-
Атрибуты из
Graphics.UI.Threepenny.Attributes
, которые вы упоминаете, являются атрибутами HTML. Изменение их при определении исходного макета обычно выполняется с помощьюset
. (Кстати, если вам нужна ссылка для поиска того, что делают такие вещи, как атрибуты HTML, вы не можете ошибиться с MDN.) -
Для оформления CSS вы можете использовать
(#.)
combinator. -
Что касается макета, основными инструментами являются
(# )
вложение HTML-элементов иgrid
,row
иcolumn
упорядочиваниеdiv
сеток на основе.
Комментарии:
1. Спасибо за этот ответ, я рассмотрю это. Я не знаю никакого HTML, поэтому не видел связи и не понял, что мне пришлось искать атрибуты HTML в Google вместо атрибутов threepenny-gui.