TableWidgetを使用すると、QtRubyで奇妙なことが起こります。テーブルウィジェットは読み込まれますが、行の要素をクリックすると、アプリがsegfaultしてクラッシュします。
require 'Qt4'
class SimpleModel < Qt::AbstractTableModel
def rowCount(parent)
return 1
end
def columnCount(parent)
return 1
end
def data(index, role=Qt::DisplayRole)
return Qt::Variant.new("Really Long String") if index.row == 0 and index.column == 0 and role == Qt::DisplayRole
return Qt::Variant.new
end
end
Qt::Application.new(ARGV) do
Qt::TableWidget.new(1, 1) do
set_model SimpleModel.new
show
end
exec
end
バックトレースは、mousePressEventで爆撃されていることを示しているようです
#6 0x01624643 in QAbstractItemView::pressed(QModelIndex const&) () from /usr/lib/libQtGui.so.4
#7 0x016306f5 in QAbstractItemView::mousePressEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
mousePressEventとmouseMoveEventをオーバーライドすると、この種のクラッシュは発生しなくなります。私はここで何か間違ったことをしていますか、それともQtRubyのバグとしてこれをチョークで書くことができますか?
私はfedora11を使用しており、次のパッケージがインストールされています。
QtRuby-4.4.0-1.fc11.i586ルビー-1.8.6.369-1.fc11.i586
これらのクラッシュは、Windowsでスクリプトを実行しているときにも発生します。