○ペインとボックス

■ペインは、垂直方向にタイルで埋めるように配置します
ペインの取っ手を消したい時は上側のウィジットに XtNshowGrip,False リソースを追加します
ペインに一つしかウィジットが配置されていない場合は、ペインが有っても無くてもレイアウトに変化はありません


Widget paned = XtCreateManagedWidget ("paned",panedWidgetClass,top,NULL,0);


■ボックスはウィジットが重ならないように配置します

Widget box=XtCreateManagedWidget("box1", boxWidgetClass,paned,NULL,0);



○ペインの上側にフォームを貼り付けて下側にボックスを貼り付けます
フォームにはformと書いたラベルを貼り付けます
ボックスには20個のラベルを貼り付けます








#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Label.h>
#include <X11/Xaw/Box.h>
#include <X11/Xaw/Paned.h>


main( int argc, char **argv )
{
	XtAppContext app_context;
	Widget top;

	top = XtVaAppInitialize( &app_context, "test", NULL, 0, &argc, argv, NULL,
	//XtNwidth,500,
	//XtNheight,500,
	NULL);


	//ペインは、垂直方向にタイルで埋めるように配置
	Widget paned = XtCreateManagedWidget ("paned",panedWidgetClass,top,NULL,0);


	Widget form = XtVaCreateManagedWidget("form",formWidgetClass,paned,
						//XtNshowGrip,False,//上側のリソースに追加してペインの取っ手を消す
						NULL);

	XtVaCreateManagedWidget("Label",labelWidgetClass,form,XtNlabel,"form",NULL);


	Arg ar[16];
	int arc=0;
	XtSetArg(ar[arc],XtNborderWidth,(XtArgVal)0);arc++;//線を消す

	//ボックスはウィジットが重ならないように配置
	Widget box=XtCreateManagedWidget("box1", boxWidgetClass,paned,ar,arc);


	int i;
	for(i=0;i<20;i++){
		char str[10];
		sprintf(str,"%d",i);
		XtVaCreateManagedWidget("Label",//ウィジット名
						labelWidgetClass,//ラベルクラスを指定
						box,
						//リソースの直接入力(どんどん追加できる)
						XtNlabel,str,//表示される文字
						//XtNwidth, 200,//横幅
						XtNborderWidth,1,//境界線
						//リソースここまで
						NULL);

	}

	XtRealizeWidget( top );
	XtAppMainLoop( app_context );
}










▲トップページ > Linux と C