in my simple code, there is a spacing of 50 between text control and frame border. However if I use
H:|[label, groupText]|
when run the EXE, I get
E:\prg\nim\nim-1.0.6\lib\core\macros.nim(581) layout
C:\Users\USER\.nimble\pkgs\wnim-0.10.1\wNim\private\wResizer.nim(52) addConstraint
C:\Users\USER\.nimble\pkgs\wnim-0.10.1\wNim\private\kiwi\solver.nim(74) addConstraint
Error: unhandled exception: [UnsatisfiableConstraintException]
so how to fix it? thanks
import strutils, wNim
let app = App()
let frame = Frame()
let panel = Panel(frame)
let label = StaticText(panel, style=wBorderSimple, label=" ".repeat(20))
let text = TextCtrl(panel)
let btnClick = Button(panel, label="Click")
let btnClose = Button(panel, label="Close")
proc layout() =
panel.autolayout """
H:|{groupButton:[btnClick(btnClose)]-[btnClose]}|
H:{groupText:|-50-[text]|}
V:|[label]-[groupText]-[groupButton]|
H:|[label, groupText]|
"""
panel.wEvent_Size do (): layout()
layout()
frame.center()
frame.show()
app.mainLoop()
Most probably a typo error in your layout proc()
proc layout() =
panel.autolayout """
H:|{groupButton:[btnClick(btnClose)]-[btnClose]}|
H:|{groupText:[-50-[text]]}|
V:|[label]-[groupText]-[groupButton]|
H:|[label, groupText]|
This template works, at least no error after compilation. By the way not sure it is the layout you want.
Your rule 2 and rule 4 have contradictions.
Rule 2: |-50-[text]| Rule 4: |[text]|