英文:
How to program layout sections in spotfire using ironpython
问题
我希望我的布局由两组并排的可视元素组成,并且这些组应该堆叠。然而,使用下面的代码,我得到了我的前两个可视元素并排,然后第三个和第四个堆叠,但也属于并排部分。
我尝试结束并排部分,但结果出现错误消息,指出“SystemError: 无法在根部分结束后开始一个部分”。
layout = LayoutDefinition()
layout.BeginSideBySideSection()
counter = 0
for visual in page.Visuals:
if counter == 2:
layout.BeginStackedSection()
layout.Add(visual)
else:
layout.Add(visual)
counter += 1
layout.EndSection()
layout.EndSection()
page.ApplyLayout(layout)
英文:
I want my layout to consist of 2 sets of side-by-side visuals, and these sets should be stacked.
However, using the code below, I get my first two visualizations side-by-side, and then the third and fourth are stacked, but also part of the side-by-side section.
I tried ending the side-by-side section, but that results in error messages that I "SystemError: Cannot begin a section once the root section has been ended."
layout = LayoutDefinition()
layout.BeginSideBySideSection()
counter = 0
for visual in page.Visuals:
if counter == 2:
layout.BeginStackedSection()
layout.Add(visual)
else:
layout.Add(visual)
counter += 1
layout.EndSection()
layout.EndSection()
page.ApplyLayout(layout)
答案1
得分: 1
规则是,当你开始一个部分时,它需要有一个对应的结束部分,有点类似于XML。
我会这样做,除非你有特殊的原因要使用这个循环与计数器:
from Spotfire.Dxp.Application.Visuals import *
from Spotfire.Dxp.Application.Layout import LayoutDefinition
layout = LayoutDefinition()
visuals = list(page.Visuals)
layout.BeginStackedSection()
layout.BeginSideBySideSection()
layout.Add(visuals[0])
layout.Add(visuals[1])
layout.EndSection()
layout.BeginSideBySideSection()
layout.Add(visuals[2])
layout.Add(visuals[3])
layout.EndSection()
layout.EndSection()
page.ApplyLayout(layout)
英文:
The rule is that when you start a section, it needs a corresponding end section, a bit like xml.
I would do something like this, unless you have a special reason for using this loop with the counter:
from Spotfire.Dxp.Application.Visuals import *
from Spotfire.Dxp.Application.Layout import LayoutDefinition
layout = LayoutDefinition()
visuals = list(page.Visuals)
layout.BeginStackedSection()
layout.BeginSideBySideSection()
layout.Add(visuals[0])
layout.Add(visuals[1])
layout.EndSection()
layout.BeginSideBySideSection()
layout.Add(visuals[2])
layout.Add(visuals[3])
layout.EndSection()
layout.EndSection()
page.ApplyLayout(layout)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论