我正在尝试对齐标签,以便在顶部而不是底部有空间。我想要的是在label1和label2之间大约30,但不在label2和label3之间。我将label2 y padding设置为30,然后在label2 y Gtk::ALIGN_BOTTOM上设置,但是它似乎不起作用。相反,我最终得到的结果是在屏幕快照中,label2的顶部为30,底部为30。我知道有解决方法,但是我想知道这段代码有什么问题?我不知道。我尝试更改包装选项,但是没有用。
这是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;
}
谢谢
最佳答案
您将需要以下内容(未经测试):
Gtk::Alignment alignment( 0.0, 1.0, 0.0, 0.0 );
alignment.set_padding( 30, 0, 0, 0 );
alignment.add( label2 );
问题是
label.set_alignment()
不在填充内对齐,仅在分配给小部件的剩余空间内对齐。关于c++ - GTK y轴填充标签不垂直ALIGN_BOTTOM吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9629522/