2012-03-09 15 views
1

私は、上にスペースがあり、下にスペースがないようにラベルを整列しようとしています。私が望むのは、label1とlabel2の間に約30ですが、label2とlabel3の間にはありません。私はlabel2 yパディングを30に設定し、次にlabel2 y Gtk :: ALIGN_BOTTOMに設定しましたが、動作しないようです。代わりに、スクリーンショットのように見えるのは、ラベル2の上部に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

あなたが(未テスト)このようなものが必要です:問題はそのlabel.set_alignment()ある

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

をは、ウィジェットに割り当てられた残りのスペース内でのみ、パディング内で整列しません。

+0

返事をありがとう。テストされ、承認された。だから、コードに何も問題はありません、私はちょうど整列なしでそれを行うことはできません? – loop

+0

それは正しいです。 – ptomato

+0

@test、私はあなたのアライメントを設定するために、ラベルウィジェットの 'valign'プロパティを使うこともできると思います。 –

関連する問題