2012-03-09 4 views
1

레이블을 정렬하여 맨 위에 공간이 있고 맨 아래에 공간이 없도록하려고합니다. 내가 원하는 것은 label1과 label2 사이에는 약 30이지만 label2와 label3 사이에는 없습니다. label2 y 패딩을 30으로 설정 한 다음 label2 y Gtk :: ALIGN_BOTTOM에 설정했지만 작동하지 않습니다. 그 대신에 내가 스크린 샷에있는 것처럼 보이는 것은 label2의 맨 위에 30 개, 밑에 30 개가되는 것입니다. 이 문제를 해결하는 방법이 있다는 것을 알고 있지만이 코드의 문제점을 알고 싶습니다. 나는 그것을 이해할 수 없다. 나는 팩 옵션을 변경하려고했지만 작동하지 않았다. 여기GTK y 축 패딩 레이블이 세로로 정렬되지 않았습니다?

screenshot이며, 여기에 샘플 코드입니다 :

int main(int argc, char *argv[]) 
{ 
    Gtk::Main kit(argc, argv); 

    Gtk::Window window; 
    window.set_default_size(400, 400); 

    Gtk::Label label1("This is the first label."); 
    Gtk::Label label2("This is the second label."); 
    Gtk::Label label3("This is the third label."); 

    label2.set_padding(0, 30); 
    label2.set_alignment(Gtk::ALIGN_RIGHT, Gtk::ALIGN_BOTTOM); 

    Gtk::VBox vbox; 
    vbox.pack_start(label1, false, false, 0); 
    vbox.pack_start(label2, false, false, 0); 
    vbox.pack_start(label3, false, false, 0); 

    window.add(vbox); 
    window.show_all_children(); 

    Gtk::Main::run(window); 

    return 0; 
} 

감사

+0

GTKmm 2 또는 3입니까? – ptomato

+0

@ptomato it gtkmm 2.22 windows에 – loop

답변

2

당신은 (테스트되지 않은) 같은 것을해야합니다 :

Gtk::Alignment alignment(0.0, 1.0, 0.0, 0.0); 
alignment.set_padding(30, 0, 0, 0); 
alignment.add(label2); 

문제는 label.set_alignment()을 것입니다을 패딩 내에 정렬되지 않으며 위젯에 할당 된 나머지 공간에서만 정렬됩니다.

+0

답장을 보내 주셔서 감사합니다. 테스트를 거쳐 승인되었습니다. 코드에 아무런 문제가 없으므로 정렬 없이는 할 수 없습니다. – loop

+0

맞습니다. – ptomato

+0

@test, 나는 label 위젯의 'valign'속성을 사용하여 정렬을 설정할 수도 있다고 생각한다. –