fxruby Progressbar ширина

Я не знаю, неправильно ли я понимаю всю документацию, но есть проблема, с которой я сталкиваюсь уже два дня, и я просто не понимаю, что я делаю неправильно. Я использую fxruby для создания небольшого графического интерфейса, и мне нужен индикатор прогресса в этом. Когда я инициализирую его без параметров, он просто смехотворно мал, поэтому я попытался использовать опцию barSize (которая отвечает за ширину, по крайней мере, так сказано в документации). Это мой исходный код:

require 'fox16'
require 'pp'

include Fox

class Test < FXMainWindow
  def initialize(app)
    super(app, "Test")

    hFrame1 = FXHorizontalFrame.new(self)

    @progBar = FXProgressBar.new(hFrame1)
    pp @progBar.barSize
    @progBar.barSize=100
    @progBar.setTotal(10)
    @progBar.setProgress(5)
    pp @progBar.barSize


    def create
      super
      show(PLACEMENT_SCREEN)
    end

  end
end

FXApp.new do |app|
    Test.new(app)
    app.create
    app.run
end

Но вот как это выглядит:

введите описание изображения здесь] 1

Так что, очевидно, высота меняется. Очевидно, я также пробовал что-то вроде:width => 150 в конструкторе, но это не сработало вообще. Похоже, я просто тупой для fxruby. Может ли кто-нибудь указать мне правильный путь, пожалуйста?

1 ответ

Решение

Вам нужно узнать о параметрах макета. Попробуйте эту модификацию вашего Test класс, и я думаю, вы будете знать, куда идти оттуда

class Test < FXMainWindow
  def initialize(app)
    super(app, "Test", :width => 200, :height => 100)

    hFrame1 = FXHorizontalFrame.new(self, LAYOUT_FILL)

    @progBar = FXProgressBar.new(hFrame1, :opts => LAYOUT_FILL_X)
    pp @progBar.barSize
    @progBar.barSize=10
    @progBar.setTotal(10)
    @progBar.setProgress(5)
    pp @progBar.barSize


    def create
      super
      show(PLACEMENT_SCREEN)
    end

  end
end
Другие вопросы по тегам