首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtRuby GridLayout-未定义的方法“addWidget”

QtRuby GridLayout-未定义的方法“addWidget”
EN

Stack Overflow用户
提问于 2014-07-01 00:20:53
回答 1查看 157关注 0票数 2

我正在使用QtRuby进行一个GUI项目。但是,一旦在我的GridLayout对象中添加了使用MainWindow的代码,我就开始收到以下错误:

代码语言:javascript
复制
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类的代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 19:40:52

我解决了我的问题-我试图添加一个模型到布局,没有视图。这是我的固定代码:

代码语言:javascript
复制
# ...
@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)
# ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24500798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档