如何解决使 Motif Option Menu Widget 占据其父级表单的整个宽度拉伸
#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include <Xm/RowColumn.h>
Widget make_menu_item(char *item_name,Widget menu);
/* XT/XM RELATED VARIABLES */
XtAppContext context;
xmstringCharSet char_set = xmsTRING_DEFAULT_CHARSET;
/* WIDGETS */
Widget toplevel;
Widget form;
Widget pulldown_menu;
Widget option_menu;
Widget option_item[100];
int option_items = 0;
int main(int argc,char *argv[]) {
Arg al[10];
int ac;
/* CREATE TOP SHELL WIDGET */
toplevel = XtAppInitialize(&context,"",NULL,&argc,argv,0);
/* RESIZE TOP LEVEL*/
ac = 0;
XtSetArg(al[ac],XmNheight,900); ac++;
XtSetArg(al[ac],XmNwidth,600); ac++;
XtSetValues(toplevel,al,ac);
/* CREATE FORM MANAGER WIDGET */
form = XmCreateForm(toplevel,"form",ac);
XtManageChild(form);
/* PULLDOWN MENU */
ac = 0;
pulldown_menu = XmCreatePulldownMenu(form,"pulldown_menu",ac);
ac = 0;
XtSetArg(al[ac],XmNsubMenuId,pulldown_menu); ac++;
XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++;
XtSetArg(al[ac],XmNrightAttachment,XmNlabelString,xmstringCreate("Pulldown Menu",char_set)); ac++;
option_menu = XmCreateOptionMenu(form,"option_menu",ac);
XtManageChild(option_menu);
make_menu_item("FOO",pulldown_menu);
make_menu_item("BAR",pulldown_menu);
/* REALIZE TOPLEVEL */
XtRealizeWidget(toplevel);
XtAppMainLoop(context);
return 0;
}
Widget make_menu_item(char *item_name,Widget menu) {
int ac;
Arg al[10];
Widget item;
ac = 0;
XtSetArg(al[ac],xmstringCreateLtoR(item_name,char_set)); ac++;
item = XmCreatePushButton(menu,item_name,ac);
XtManageChild(item);
/*XtAddCallback(item,XmNactivateCallback,menuCB,client_data);*/
XtSetSensitive(item,True);
return(item);
}
我尝试使用以下方法拉伸使用 XmCreateOptionMenu
创建的选项菜单:
XtSetArg(al[ac],XmATTACH_FORM); ac++;
然而,最终的结果是选项菜单没有被拉伸。
是否可以通过选项菜单来实现?
我希望看到 OptionMenu 下拉按钮使用父窗体的整个宽度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。