○formの配置

formに貼り付けるウィジットのリソースで配置を管理します

■ウィジットの開始位置を指定
XtNhorizDistance,50,//開始位置
XtNvertDistance,50,

■ウィジットの相対的な配置位置を指定
XtNfromHoriz,label1,XtNvertDistance, 2,//label1ウィジットの2ピクセル横に配置
XtNfromVert,label1,XtNvertDistance, 2,//label1ウィジットの2ピクセル下に配置

■ウィジットの幅と高さを指定
XtNwidth,50,//幅と高さ
XtNheight,50,

■その他
XtNmappedWhenManaged,False,//不可視にする




○Widgetをformに貼り付けます
不可視ラベル label2 を貼り付けて配置しています








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


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

	top = XtVaAppInitialize( &app_context, "test", NULL, 0, &argc, argv, NULL,NULL);

	Widget form = XtVaCreateManagedWidget("form",formWidgetClass,top,NULL);

	Widget label1 = XtVaCreateManagedWidget("Label1",labelWidgetClass,form,XtNlabel,"label1",
					XtNhorizDistance,50,//開始位置
					XtNvertDistance,50,
					XtNwidth,50,//幅と高さ
					XtNheight,50,
					NULL);

	Widget label2 = XtVaCreateManagedWidget("Label2",labelWidgetClass,form,XtNlabel,"label2",
					XtNwidth,50,//幅と高さ
					XtNheight,50,
					XtNfromHoriz,label1,XtNvertDistance, 2,//label1ウィジットの2ピクセル横に配置
					XtNfromVert,label1,XtNvertDistance, 2,//label1ウィジットの2ピクセル下に配置
					XtNmappedWhenManaged,False,//不可視にする
					NULL);

	Widget label3 = XtVaCreateManagedWidget("Label3",labelWidgetClass,form,XtNlabel,"label3",
					XtNwidth,50,//幅と高さ
					XtNheight,50,
					XtNfromHoriz,label1,XtNvertDistance, 1,//label2ウィジットの2ピクセル横に配置
					XtNfromVert,label2,XtNvertDistance, 2,//label2ウィジットの2ピクセル下に配置
					NULL);

	Widget label4 = XtVaCreateManagedWidget("Label4",labelWidgetClass,form,XtNlabel,"label4",
					XtNwidth,50,//幅と高さ
					XtNheight,50,
					XtNfromHoriz,label2,XtNvertDistance, 2,//label2ウィジットの2ピクセル横に配置
					XtNfromVert,label1,XtNvertDistance, 2,//label1ウィジットの2ピクセル下に配置
					NULL);
	
	XtRealizeWidget( top );

	XtAppMainLoop( app_context );
}









▲トップページ > Linux と C