展开 IUP.tabs 元素,使其适合对话框。

我正在使用 Lua 5.1.4IUP 3.4.0

给定代码:

dlg =  iup.dialog {
    iup.hbox {
        iup.tabs {
            tab1,
            tab2
        }
    }
    ;
    title = "window",
    rasterSize = "640x480"
}

其中 tab1tab2 分别是一个包含一个或多个元素的 iup.hbox,如何使 iup.tabs 元素占据整个窗口?

点赞
用户1901916
用户1901916

经过一些尝试,我发现适用于我的解决方案是将一个不可见的标签元素插入到标签页中,以下是可工作的示例。

require( "iuplua" )

tab1 = iup.hbox {
    iup.button { title = "一个按钮" },
    iup.label { expand = "yes", title = "" }
    ;
    tabtitle = "标签页1"
}

tab2 = iup.hbox {
    iup.button { title = "另一个按钮" }
    ;
    tabtitle = "标签页2"
}

dlg =  iup.dialog {
    iup.hbox {
        iup.tabs {
            tab1,
            tab2
        }
    }
    ;
    title = "窗口",
    rasterSize = "640x480"
}

dlg:showxy( iup.CENTER, iup.CENTER )
iup.MainLoop()

对我来说,这感觉像是一种 hack,我相信存在更干净的方法。

2013-05-12 01:01:59
用户1898478
用户1898478

你的解决方案并不完全是一个 hack。实际上,它指出了正确的方向。iup.fill{}元素可以用来实现这个效果,这是一个空元素,正是用来做这个的。但是,由于它只能沿着盒子的方向扩展,因此解决方案看起来就像这样:

tab1 = iup.hbox {
    iup.button { title = "A button" },
    iup.fill { },
    iup.vbox{iup.fill { }}
    ;
    tabtitle = "Tab1"
}
2013-05-12 01:53:35