Итак, это сценарий: допустим, у меня есть текстовое поле, которое я хочу разместить точно в правой части экрана, но ОСТАЛОСЬ, чтобы текстовое поле сохраняло свои собственные размеры. Другими словами, я хочу просто указать шрифт, позволить текстовому полю выбрать правильные размеры, а затем поместить его на край экрана. Было бы очень легко, если бы я знал размеры, с тех пор я могу сделать
local awful = require("awful")
local wibox = require("wibox")
local text_widget = wibox.widget({
widget = wibox.widget.textbox,
font = "Roboto Medium 15",
text = "hello world",
})
local rightmost_place = wibox.widget({
layout = wibox.layout.manual,
{
text_widget,
point = {
y = 0,
-- You can't actually do the `text_widget.geometry.width`
x = awful.screen.focused().geometry.width
- text_widget.geometry.width
},
-- We're not setting these so the textbox
-- will get its size automatically
-- forced_width =
-- forced_height =
},
})
Таким образом, всякий раз, когда я должен был что-то вводить, текстовое поле будет увеличиваться, но оно автоматически перемещается в соответствии с координатой x
.
Кроме того, речь идет не только о текстовых полях. У меня была такая же проблема с другими виджетами, поэтому мой вопрос: есть ли какой-нибудь способ, позволяющий виджетам получать размеры, которые они предпочитают, но все же получить их геометрию, чтобы переместить их туда, где вы хотите? *