[fxruby-users] Is it possible to create a pane dynamically

Lyle Johnson lyle at lylejohnson.name
Mon Aug 31 18:12:15 EDT 2009

On Fri, Aug 28, 2009 at 6:55 AM, Soumyanath<soumyanath.c at gmail.com> wrote:

> I am new to FXRuby so excuse me for this stupid question.

It is not a stupid question.

> I need to enter many different data and trying to create a vertical pane
> dynamically using response from a SQL query.
> I want these input form to appear in my main window. Created a class
> based on FXMainWindow.
> --------------- Code snippet ------------
> class DbFace < FXMainWindow
>    attr_writer \
>    :title,
>  def addNew
>    vPane = FXVerticalFrame.new(@hWnd)
>    dTitle = FXLabel.new(vPane, at title,nil,LAYOUT_FILL_ROW)
>  end
>  def initialize(app, pane)
>    @hWnd = pane
>    @hApp  = app
>  end
> end
> ----------- End -----------------
> I use this class from inside my program. As:
>        book = DbFace.new(app, @frame)
>        book.title = "Add new record"
>        book.addNew
> The new dialog fields do not show up with this. Please tell me if I am
> doing something wrong. Any example will be great.

I think you're just leaving out a call to create() for the
newly-constructed widgets. What happens if you add a call to
vPane.create() at the end of your addNew() method?

    def addNew
      vPane = FXVerticalFrame.new(@hWnd)
      dTitle = FXLabel.new(vPane, at title,nil,LAYOUT_FILL_ROW)

Let me know if that does the trick. For more background on this, see:


Or, even better, buy the FXRuby book and read Chapter 7. ;)

Hope this helps,


More information about the fxruby-users mailing list