文書の過去の版を表示しています。


TG classes

リンク

TGLayoutHints

  • TGLayoutHints(ULong_t hints, Int_t padleft, Int_t padright, Int_t padtop, Int_t padbottom) の padleft, padright, padtop, padbottom は左右上下の padding を px 単位で与える。hints には、配置したい場所を指定する。TGLayoutManager.h で定義される
    enum ELayoutHints {
       kLHintsNoHints = 0,
       kLHintsLeft    = BIT(0),
       kLHintsCenterX = BIT(1),
       kLHintsRight   = BIT(2),
       kLHintsTop     = BIT(3),
       kLHintsCenterY = BIT(4),
       kLHintsBottom  = BIT(5),
       kLHintsExpandX = BIT(6),
       kLHintsExpandY = BIT(7),
       kLHintsNormal  = (kLHintsLeft | kLHintsTop)
       // bits 8-11 used by ETableLayoutHints
    };

    から指定する。kLHintsLeft | kLHintsTop | kLHintsExpandY というように、or ビット演算子 | を用いて複数指定できる。BIT は

Widget の配置

  • widget を縦から配置していく分には、MyMainFrame::MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h) : TGMainFrame(p, w, h) クラス内で
       fLbl1 = new TGLabel(this, "Label1");
       AddFrame(fLbl1,  new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4));
       fLbl2 = new TGLabel(this, "Label2");
       AddFrame(fLbl2,  new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4));

    のように書いていけば良い。横に widget を横に並べるには、

       TGHorizontalFrame *hframe = new TGHorizontalFrame(this, 300, 20, kFixedWidth);
       fLbl1 = new TGLabel(hframe, "Label1");
       hframe->AddFrame(fLbl1,  new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4));
       fLbl2 = new TGLabel(hframe, "Label2");
       hframe->AddFrame(fLbl2,  new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4));
       AddFrame(hframe, new TGLayoutHints(kLHintsExpandX, 10, 10, 2, 2));

    のように書く。TGLabel を new するとき、 this ではなく hframe とするので注意。

softwares/root/tgclasses.1519539801.txt.gz · 最終更新: 2018/02/25 15:23 (外部編集)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0