rendered paste bodyrequire "pp"
require "Qt4"
# require 'bigdecimal'
class MyModel < Qt::SortFilterProxyModel
attr_reader :model
def initialize(*args)
super(*args)
@model = Qt::StringListModel.new
@model.setStringList((0..10).to_a.collect{|i| "test #{i}"})
setSourceModel(@model)
# @dummy = Hash.new []
end
def data(index, role=Qt::DisplayRole, uff=0)
return Qt::Variant.new unless index.isValid
# item = @dummy[index.column]
index.column ##
if uff > 100
super(index, role)
else
data(index, role, uff+1)
end
end
end
class MyMainWindow < Qt::MainWindow
slots "test()"
def initialize(*args)
super(*args)
@wid = Qt::Widget.new
@lay = Qt::VBoxLayout.new(@wid)
@model = MyModel.new
table = Qt::TableView.new
table.setModel(@model)
table.setSortingEnabled(true)
btn = Qt::PushButton.new
connect(btn, SIGNAL("clicked()"), self, SLOT("test()"))
@lay.addWidget(table)
@lay.addWidget(btn)
setCentralWidget(@wid)
resize(400,900)
end
def test
GC.start
end
private
end
$KCODE='u'
Qt.debug_level = Qt::DebugLevel::High if ARGV.shift == "debug"
app = Qt::Application.new(ARGV)
mainWin = MyMainWindow.new
mainWin.show
app.exec