Qt模型/查看Ruby中的编程示例和教程

时间:2012-04-30 20:06:33

标签: ruby qt user-interface qt4 qtruby

我正在学习使用Ruby的Qt模型/视图,我正在尝试运行以下代码

require 'Qt4'


class MyModel < Qt::AbstractListModel

    def initialize(data = [])
        super()
        @data = data
    end

    def rowCount idx
        @data.size
    end

    def data idx, role = Qt::DisplayRole
        if role == Qt::DisplayRole then
            Qt::Variant.new @data
        else Qt::Variant.new
        end
    end
end

if $0 == __FILE__
    app = Qt::Application.new ARGV 
    v = Qt::ListView.new
    m = MyModel.new(['1', '2', '3'])
    v.model = m
    v.show
    app.exec
end

当我运行脚本时,它显示的是一个列为三行为空的列表窗口。我究竟做错了什么? 另一方面,我发现很难学习使用ruby来编程/查看编程,因为文档很差(All is C ++),如果有教程或其他东西,任何人都知道吗?

1 个答案:

答案 0 :(得分:1)

您是否熟悉Qt,Ruby和/或C ++?如果这样那将对你的旅程有很大的帮助,因为不幸的是,有很多关于Qt和Ruby的文档可用。

无论如何,问题是你要返回一个数组而不是想要索引的元素,请参阅QAbstractItemModel::data。那里的idx参数是一个QModelIndex,所以只需查找想要的行并返回如下:

Qt::Variant.new @data[idx.row]

另外,结帐http://techbase.kde.org/Development/Languages/Ruby了解有关Ruby&amp;的信息。 Qt一般。