如何获得睡衣或gwt菜单项之间的差距?

时间:2011-04-13 05:37:25

标签: python gwt pyjamas

我使用睡衣实现了一个MenuBar:

from pyjamas.ui.RootPanel import RootPanel
from pyjamas.ui.Composite import Composite
from pyjamas.ui.MenuBar import MenuBar

class Menubar(Composite):
    def __init__(self):
        Composite.__init__(self)

        menubar = MenuBar(vertical=False)
        menubar.addItem("Dashboard", "")
        menubar.addItem("FileInspect", "")

        self.initWidget(menubar)

RootPanel().add(Menubar())

但无论如何我已经尝试过,我无法获得菜单项“Dashboard”和“FileInspect”之间的边距/空格。您的建议得到了热烈的赞赏。

2 个答案:

答案 0 :(得分:1)

好的,首先查看http://pyjs.org/api/的api文档并查找菜单栏(Ctrl + F找到它)或者如果你很懒,那么你可以在这里看到它:http://pyjs.org/api/pyjamas.ui.MenuBar.MenuBar-class.html

在这种情况下,这没有用,因为没有setSpacing()方法或类似方法,但至少它告诉我们肯定。

所以我猜你必须通过css来做。查看展示示例:

pajamas / examples / showcase / src / public / Showcase.css

现在你会看到顶部有一个gwt-MenuBar类。所以你有两个选择;要么使用MenuBar小部件的addStyleName()方法,要么只编辑css中的现有样式。我可能会做后者。

希望有所帮助!!如果确实如此,请不要忘记接受。

答案 1 :(得分:1)

在GWT中,您可以在要分离的任何一对菜单项之间添加MenuItemSeparator。分隔符的宽度决定了项目之间的分隔。您可以为分隔符设置样式,使其看起来不可见。例如,

private MenuBar myMenuBar=new MenuBar(false); // false for horizontal menu bar
private MenuItemSeparator separator=new MenuItemSeparator();
private MenuItem item1;
private MenuItem item2;

myMenuBar.add(item1);
myMenuBar.add(separator);
myMenuBar.add(item2);

separator.setStyleName("separatorStyle");

在CSS中定义separatorStyle。例如,如果你想要20px分离......

.separatorStyle{
width: 20px;
padding: 0px;
margin: 0px;
border: none;
background: none;
}