IUP 拆分溢出对话框?
IUP split overflowing dialog?
我尝试创建的图形用户界面遵循这个简单的逻辑:
- IupDialog:
- IupVbox
- IupSplit
- IupList
- IupList
列表应该填充拆分,并在需要时有滚动条。这是有效的,但是,如果我稍微调整 window 的大小,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);
只有当列表项很多,或者一个项很大时才会出现。
问题是默认情况下列表的自然大小考虑了它的所有项目。所以它比对话框的实际大小要大,即使在使用 expand=yes 和拆分内部时也是如此。这是历史行为,无法更改。
为了避免这种情况,我们有两个属性:VISIBLECOLUMNS 和 VISIBLELINES,设置后将禁用自然大小的这种行为。例如:
IupSetAttribute(list_entries, "VISIBLECOLUMNS", "10");
IupSetAttribute(list_entries, "VISIBLELINES", "3");
那么您的示例应该会按预期工作。
我尝试创建的图形用户界面遵循这个简单的逻辑:
- IupDialog:
- IupVbox
- IupSplit
- IupList
- IupList
- IupSplit
- IupVbox
列表应该填充拆分,并在需要时有滚动条。这是有效的,但是,如果我稍微调整 window 的大小,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);
只有当列表项很多,或者一个项很大时才会出现。
问题是默认情况下列表的自然大小考虑了它的所有项目。所以它比对话框的实际大小要大,即使在使用 expand=yes 和拆分内部时也是如此。这是历史行为,无法更改。
为了避免这种情况,我们有两个属性:VISIBLECOLUMNS 和 VISIBLELINES,设置后将禁用自然大小的这种行为。例如:
IupSetAttribute(list_entries, "VISIBLECOLUMNS", "10"); IupSetAttribute(list_entries, "VISIBLELINES", "3");
那么您的示例应该会按预期工作。