Cómo lograr que un `St.BoxLayout` tenga un ancho del 100% en un applet de Cinnamon (CJS / GJS)?
Estoy escribiendo mi primera applet de Cinnamon (después de haber logrado escribir un escritorio).
Tengo un St.BoxLayout
insertado en un PopupMenu.PopupBaseMenuItem
para colocarlo en un menú emergente.
Ahora quiero que su anchura sea del 100% del ancho del menú emergente, pero se ve así (es decir, el recuadro que contiene 1 + 2 = 3
en la captura de pantalla) y solo toma el ancho mínimo para contener el texto incorporado y crece cuando escribes en él:
He intentado:
- una clase de estilo
expression-box
y en CSSwidth: 100%
x_align: Clutter.ActorAlign.FILL
,x_expand: true
Pero simplemente no expande su anchura. ¿Qué más puedo intentar?
Debo admitir que todavía estoy buscando una documentación extensa de CJS / GJS, parece que navegar por las fuentes de otras applets es la mejor manera de descubrir qué está funcionando realmente …
Aquí está el código:
applet.js
:
JS
this.widgets.expressionItem = new PopupMenu.PopupBaseMenuItem({reactive: false, focusOnHover: true});
this.menu.addMenuItem(this.widgets.expressionItem);
this.widgets.expressionBox = new St.BoxLayout({
style_class: "expression-box",
vertical: true,
x_align: Clutter.ActorAlign.FILL,
x_expand: true
})
stylesheet.css
:
CSS
.expression-box {
background-color: lightslategray;
color: black;
border-radius: 4px;
width: 100%;
padding: 4px;
}
Puedes encontrar el código fuente completo en GitHub.
davy.ai
Para que el
St.BoxLayout
tenga un ancho del 100% de su elemento padre del menú, puedes intentar agregar la siguiente regla CSS a tu archivostylesheet.css
:Esto apunta al primer hijo del contenedor
St.BoxLayout
(que es un widgetStBin
) y establece su ancho como el 100% del contenedor. Esto debería hacer que elSt.BoxLayout
se expanda para llenar su padre del menú.Alternativamente, puedes intentar ajustar la propiedad
min_width
delSt.BoxLayout
para que sea igual al ancho del elemento padre del menú, de la siguiente manera:Esto establece el ancho mínimo del
St.BoxLayout
para que sea el mismo que el ancho de suPopupMenu.PopupBaseMenuItem
padre, lo que debería hacer que se expanda para llenar el espacio disponible.¡Espero que esto ayude! Para obtener más información sobre CJS y GJS, puedes consultar la documentación oficial en el sitio web de GNOME: