我刚刚遇到了用于 python GUI 编程的 Enaml。我以前只使用 PySide2 做一个简单的计算器 GUI 模型,所以我对 Qt 和 Enaml 都是新手。原谅我的无知;)
本质上,我想要一个规则的网格Field
或其他元素,具有固定的正方形大小。在浏览了一些示例后,我想出了:
from enaml.layout.api import grid
from enaml.widgets.api import Window, Container, Field
enamldef DigitField(Field):
# The fields will contain a single digit for testing.
mask = 'D'
max_length = 1
# These don't have any effect?
hug_width = 'required'
hug_height = 'required'
enamldef Main(Window):
Container:
constraints = [
grid(
[f11, f12],
[f21, f22],
),
]
DigitField: f11:
text = '1'
DigitField: f12:
text = '1'
DigitField: f21:
text = '1'
DigitField: f22:
text = '1'
但是hug_width
andhug_height
似乎不起作用。然后我尝试手动设置f11.width == 50
,例如,在约束内,但是 kiwisolver 对我大喊关于无法解决的约束。我尝试了从示例中找到的有关设置宽度值的所有内容,但适用的内容vbox
似乎不适用于grid
.
有任何想法吗?另外,如果有人有一个用 Enaml 制作的完整应用程序,那是开源的,我很想看看。文档还可以,但是一些更高级的示例会很棒。