使用 TableWidget 时,我对 QtRuby 感到有些奇怪。表格小部件会加载,但是当您单击行中的元素时,应用程序会出现段错误并崩溃。
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 ruby-1.8.6.369-1.fc11.i586
在 Windows 上运行脚本时也会发生这些崩溃。