【问题标题】:Qt Model/View programming examples and tutorials in RubyRuby 中的 Qt 模型/视图编程示例和教程
【发布时间】:2012-04-30 20:06:33
【问题描述】:

我正在使用 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

当我运行脚本时,它显示的是一个三行空的列表窗口。我究竟做错了什么? 另一方面,由于文档很差(全是 C++),我发现很难学习用 ruby​​ 建模/查看编程。有人知道是否有教程或其他东西吗?

【问题讨论】:

    标签: ruby qt user-interface qt4 qtruby


    【解决方案1】:

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

    无论如何,问题在于您返回的是数组而不是所需索引的元素,请参阅QAbstractItemModel::data。里面的 idx 参数是一个 QModelIndex,所以只需查找想要的行并像这样返回它:

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

    另外,请查看http://techbase.kde.org/Development/Languages/Ruby,了解有关 Ruby 和 Qt 的一般信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多