コントロールのレイアウト

Apolloでプログラミングを始めて最初に戸惑ったのが、コントロールのレイアウトだ。 Apolloについているサンプルをみながら見よう見真似でやってみるのだが、どうにも思ったようには配置できない。

ボタンやラベルなどのコントロールは、フォーム上にお互いを避けつつ、適当に並んでくれるものという思っていたが、 コントロールというのは重なることができるみたいだ。

たとえば、これ。ボタン1とボタン2が仲良く並んでくれると思いきや、ボタン1がボタン2で覆い隠されてしまった。

  require 'phi'
  include Phi
  
  form = Form.new
  button_01 = Button.new(form, :button_01, "ボタン1")
  button_02 = Button.new(form, :button_02, "ボタン2")
  form.show
  Phi.mainloop()
  

IMG:/cgi-bin/imageref.rb?tag=apollo_sample02

ということで、コントロールを楽に自由に配置できるようになるまでの道程を記してみよう。

alignを使ったレイアウト

すべてのコントロールはalignというプロパティを持っている。 alignを使ったレイアウトについて調べてみた。

alignを使ったレイアウト

レイアウトマネージャを作ってみる

楽にコントロールのレイアウトができる、レイアウトマネージャを作ってみよう。

レイアウトマネージャを作ってみる

CtrlLayoutを使った独自コントロール

独自コントロールの作り方」で紹介した独自コントロールを、CtrlLayoutを使って作り直してみる。

CtrlLayoutのドキュメント

ちょっと複雑なパネル

CtrlLayoutを使って、ちょっと複雑なパネルを作ってみよう。

ちょっと複雑なパネル


戻る