2014-07-01 3 views
2

QtRuby를 사용하는 GUI 프로젝트에서 작업하고 있습니다. 여기 QtRuby GridLayout- 정의되지 않은 메서드 'addWidget'

mainwindow.rb:37:in `method_missing': undefined method `addWidget' for #<Qt::GridLayout:0x0000000221cbc0 objectName=""> (NoMethodError) 
from mainwindow.rb:37:in `initialize' 
from main.rb:5:in `new' 
from main.rb:5:in `block in <main>' 
from /usr/lib/ruby/vendor_ruby/2.1.0/Qt/qtruby4.rb:2652:in `instance_eval' 
from /usr/lib/ruby/vendor_ruby/2.1.0/Qt/qtruby4.rb:2652:in `run_initializer_block' 
from /usr/lib/ruby/vendor_ruby/2.1.0/Qt/qtruby4.rb:459:in `initialize' 
from /usr/lib/ruby/vendor_ruby/2.1.0/Qt/qtruby4.rb:459:in `initialize' 
from main.rb:4:in `new' 
from main.rb:4:in `<main>' 

내 MainWindow를 클래스에 대한 코드입니다 : 그러나, 곧 내 MainWindow 객체에 GridLayout를 사용하는 코드를 추가로,이 오류를 받기 시작 내가 알아 낸

require 'Qt4' 
require_relative '../eventhandler.rb' 
require_relative '../editor/editorwidget.rb' 
class MainWindow < Qt::MainWindow 
    # ... 
    def initialize(parent = nil) 
     super(parent) 
     # ... 
     @layout = Qt::GridLayout.new 
     @fsModel = Qt::FileSystemModel.new 
     @layout.addWidget(@fsModel, 0, 0, 1, 1) 
     @editor = EditorWidget.new 
     @layout.addWidget(@editor, 1, 0, 4, 1) 
    end 
end 

답변

1

내 문제 - 내가보기없이 모델을 레이아웃에 추가하려고했습니다. 다음은 고정 코드입니다.

# ... 
@layout = Qt::GridLayout.new 
@fsModel = Qt::FileSystemModel.new 
@fsView = Qt::TreeView.new 
@fsView.setModel(@fsModel) 
@layout.addWidget(@fsView, 0, 0, 1, 1) 
@editor = EditorWidget.new 
@layout.addWidget(@editor, 1, 0, 4, 1) 
# ...