2012-09-11 2 views
0

Monodevelop를 사용하여 GUI를 작성하고 있습니다. 나는 이미 MainWindow 내에 포함되어있는 HBox 안에 중첩 된 위젯들을 가지고있다. 그러나, 이제는 VBox를 추가하여 상단의 메뉴 막대를 배치해야합니다. 내 질문은 MonoDevelop에서 VBox를 기존 HBox의 상위 클래스로 추가하는 방법입니다.Monodevelop에서 기존 HBox의 부모로 GTK # VBox 추가하기

VBox를 창으로 끌기 만하면 아무 것도하지 않고 메뉴 옵션을 찾을 수 없습니다.

답변

1

그래픽 디자이너와는 대조적으로 코드에 HBox (및 잠재적으로 VBox)를 생성하여이를 수행 할 수 있습니다. 예를 들어

:

VBox vb = new VBox(); // Create a new VBox 
vb.Visible = true;  // Make sure it is visible 
base.Add (vb);   // Add the VBox to the base top window 
base.Move (vb,0,0);  // Make sure the VBox is placed at top-left of the window 

HBox hb = new HBox(); // Create a new HBox 
hb.Visible = true;  // Make sure it is visible 
vb.Add (hb);   // Add the HBox to the VBox (so VBox is the parent) 

HBox 수는 이미 그래픽 디자이너에서 생성되고 그에 따라 코드를 조정보다, 즉석에서이 방법을 다시 만들어야하지 않으려면. 당신은뿐만 아니라 코드에 VBox의 모든 메뉴 항목을 추가해야합니다 의미 물론

VBox vb = new VBox(); // Create a new VBox 
vb.Visible = true;  // Make sure it is visible 
base.Add (vb);   // Add the VBox to the base top window 
base.Move (vb,0,0);  // Make sure the VBox is placed at top-left of the window 
vb.Add (hb);   // Add the HBox to the VBox (so VBox is the parent) 

, 그러나 그것은 매우 간단합니다 다음 : 귀하의 기존 HBox의 이름 HB 인 경우 예를 들어, 다음을 수행 같은 규칙. 사용 가능한 멤버 함수와 사용 방법을 잘 모르는 경우 새 프로젝트를 만들고 디자이너에서 메뉴를 디자인 한 다음 (VBox 사용) 저장하십시오. 이제 gtk-gui 폴더의 파일을 확인하십시오. 주 코드 파일과 동일한 이름의 파일 (메뉴가있는 위치)은 원래 프로젝트에서 다시 작성해야하는 정확한 코드를 갖습니다.

희망이 도움이됩니다!

+0

대략적으로 (코드에서 GUI 작성하기) 내가 한 일입니다. – jarmond

0

팔레트 위젯을 모든 컨트롤과 함께 복사하고 새 팔레트를 드래그하여 다시 붙여 넣을 수 있습니다. 며칠 전 사용자 정의 위젯에서 컨트롤을 이동하기로 결정했을 때이 작업을 수행해야했습니다.

다른 답변과 마찬가지로 코드를 작성할 수 있지만 복사/붙여 넣기가 더 빠름을 알 수 있습니다.