Ruby中的Qt GUI表/电子表格类型布局

时间:2014-03-24 03:19:44

标签: ruby qt user-interface

我正在尝试设计一个GUI,它将以电子表格格式,行和列的形式输出数据。

将使用将以预定义的间隔由另一个对象提取的数据填充单元格。能够改变单个细胞颜色将是突出任何已经改变的细胞的理想选择。

经过一些研究后,看起来像Ruby的QtBindings gem是最强大的GUI选择,但我似乎无法找到任何可以帮助我完成我想要完成的文档或示例。任何代码或示例形式的建议都会有所帮助。谢谢。


更新::经过一些研究和蛮力,我想出了这个代码:

class PositionModel < Qt::AbstractTableModel
  slots 'timerhit()'

  def initialize(risk)
    super()
    @timer = Qt::Timer.new(self)
    connect(@timer, SIGNAL('timeout()'), self, SLOT('timerhit()'))
    @timer.start(1000)
    @risk = risk
    @risk_a = @risk.to_a
    #pp @risk_a
  end

  def timerhit()
    emit dataChanged(createIndex(0,0), createIndex(0,0))
    #emit dataChanged()
  end

  def rowCount(parent)
    @risk_a.size
  end

  def columnCount(parent)
    1
  end

  def data(index, role)
    col = index.column
    row = index.row


    if role == Qt::DisplayRole
      return Qt::Variant.new( @risk_a[row] )
    else
      return Qt::Variant.new()
    end 
  end
end


app = Qt::Application.new(ARGV)
model = PositionModel.new(@@risk)
table = Qt::TableView.new
table.model = model
table.setSortingEnabled(true)
table.show

它似乎运作良好,更重要的是我最终想要完成的事情的坚实基础。但是,我尝试通过单击列标题启用排序,但它似乎没有工作。有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

两个字:使用QTableViewQTableWidget

Populating Table Widget from Text File in Qt

How change row color with Null items?

将c ++代码转换为ruby qt应该是微不足道的。此外,C ++ Qt文档真棒!祝你好运。

希望有所帮助。