Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Smalltalk 如何使用UITheme builder控制变形大小_Smalltalk_Pharo - Fatal编程技术网

Smalltalk 如何使用UITheme builder控制变形大小

Smalltalk 如何使用UITheme builder控制变形大小,smalltalk,pharo,Smalltalk,Pharo,我试图在Smalltalk中创建一个Dominion游戏,但我无法按照我想要的方式获得GUI的布局 目前,我有以下代码来构建GUI: open: game | builder content | builder := UITheme builder. content := builder newColumn: {(builder newListFor: game list: #supplyStrings select

我试图在Smalltalk中创建一个Dominion游戏,但我无法按照我想要的方式获得GUI的布局

目前,我有以下代码来构建GUI:

open: game
| builder content |
builder := UITheme builder.
content := builder
    newColumn:
    {(builder
        newListFor: game
            list: #supplyStrings
            selected: nil
            changeSelected: nil
            getEnabled: nil
            help: 'Supply') .
        (builder newRow: (game players collect: [ :p | self morphForPlayer: p usingBuilder: builder ]))}.

gui := (content openInWindowLabeled: 'DominionGame') extent: 1024 @ 768
(原谅这种糟糕的Smalltalk风格,我已经使用Smalltalk一周了)

我得到了我想要的基本概念:一个窗口,上面的部分对所有玩家来说都是通用的,下面的部分对每个玩家来说都是分块的

我的问题是顶部太大,占据了大约一半的窗户,我不知道如何修复

我曾尝试在#supplyStrings列表的生成器中添加“vsizing:#shrinkWrap”,但这使得它太小,迫使内容使用滚动条;我尝试添加“范围:1024@200“到那个变形,并没有看到任何效果

所以我有两个问题:

1) 如何对使用UITheme builder构建的对象进行更精细的布局控制?
2) 在哪里可以找到关于如何使用Pharo进行UI设计的文档?如果我知道TFM在哪里,我很想去RTFM

您可以在Pharo中构建不同抽象级别的UI。在这里,您可以用演示文稿、窗格和端口来描述UI。它对于构建专门的模型浏览器非常有用。对于构建游戏来说,它似乎不是最合适的。还有,旨在重用可组合的小部件。那可能很合适。今年夏天有一个GSoC项目来构建一个规范,因此您可以很好地了解如何布局UI。变形基本上是一个抽象层,提供不同的皮肤。下面是变形的。在Morphic中直接构建的一个优点是有一个很好的游戏构建示例:(在Pharo中使用时需要稍微更改)