我试图创建的gui遵循以下简单的逻辑:
这些列表应该填充拆分,并在需要时有滚动条。但是,如果我稍微调整窗口的大小,IupVbox就会变得非常大,以至于不适合这个对话框,而且您看不到它的边距或列表的滚动条。我可能做错了什么,但我想不出来。
以下是我所做工作的简化版本:
Ihandle *page, *box_options, *split, *btn_work, *dlg;
{
list_entries = IupList(NULL);
IupSetAttribute(list_entries, "EXPAND", "YES");
}
{
list_log = IupList (NULL);
IupSetAttribute(list_log, "EXPAND", "YES");
}
split = IupSplit(list_entries, list_log);
IupSetAttribute(split, "ORIENTATION", "VERTICAL");
page = IupVbox(split, NULL);
IupSetAttribute(page, "GAP", "20");
dlg = IupDialog(page);
IupShowXY (dlg, IUP_CENTER, IUP_CENTER);发布于 2017-10-30 16:34:35
只有当列表中有许多项,或者一项非常大时,才会发生这种情况。
问题是,默认情况下,列表的自然大小会考虑其所有项。因此,它比对话框的实际大小要大,即使在使用expand=yes和拆分内部也是如此。这是一种历史性的行为,是不能改变的。
为了避免这一点,我们有两个属性: VISIBLECOLUMNS和VISIBLELINES,设置这些属性时将禁用这种自然大小的行为。例如:
IupSetAttribute(list_entries,"VISIBLECOLUMNS","10");IupSetAttribute(list_entries,"VISIBLELINES","3");
那么你的样本应该能像你预期的那样工作。
https://stackoverflow.com/questions/46933321
复制相似问题