Segmentation Fault in QtRuby4-2.1.0 on Windows

I have written some code to display a basic GUI window, which shows a
dialog box for preferences (an action in the code) which is crashing the
program with this Error displayed in cmd:

#C:/Ruby187/lib/ruby/gems/1.8/gems/qtruby4-2.1.0-x86-#mswin32/lib/Qt/qtruby4.rb:2874:
[BUG] Segmentation fault
#ruby 1.8.7 (2011-12-28 patchlevel 357) [i386-mingw32]

Here is the main code and I have kept the other scripts as attachments.
I am running Ruby 1.8.7 on Windows 7.

···

###############################
require 'rubygems'
require 'Qt4'
require 'mainWindow.rb'
require 'dialog.rb'

class Main < Qt::MainWindow
slots 'ShowPopUp(QPoint)','on_actionPreferences_triggered()'
,'addObject()'
  def initialize
    super
    @ui = Ui::MainWindow.new
    @ui.setup_ui(self)
    s='C:/'
    dirmodel = Qt::FileSystemModel.new(self)
    dirmodel.setRootPath(s)
    @ui.treeWidget.setModel(dirmodel)
    @ui.treeWidget.setContextMenuPolicy(Qt::CustomContextMenu)

    Qt::Object.connect(@ui.actionExit, SIGNAL('triggered()'),self,
SLOT('on_actionpreferences_triggered()')) #closes
    Qt::Object.connect(@ui.actionPreferences,
SIGNAL('triggered()'),self, SLOT('on_actionPreferences_triggered()'))
    Qt::Object.connect(@ui.treeWidget, SIGNAL(
'customContextMenuRequested(QPoint)'),self, SLOT('ShowPopUp(QPoint)'))
    self.show
  end
  def ShowPopUp(point)
    globalpos = Qt::Point.new
    globalpos = @ui.treeWidget.viewport.mapToGlobal(point)
    menu = Qt::Menu.new
    actCustom = Qt::Action.new("share", menu)
    menu.addAction(actCustom)
    selecteditem = menu.exec(globalpos)
    if(selecteditem)
      Qt::Object.connect(actCustom, SIGNAL('triggered()'), self,
SLOT('addObject()'))
    end
  end

  def on_actionPreferences_triggered()
    a = PreferenceDialog.new(self)
    a.setModal(true)
    a.exec
  end

end

class PreferenceDialog < Qt::Dialog

  def initialize (parent=nil)

    super(parent)
    @ui = Ui::Dialog.new
    @ui.setup_ui(self)
    self.show
  end

  def browse_clicked()
    path = Qt::FileDialog::getExistingDirectory(self, tr("Choose
Directory"),"C:\\", Qt::FileDialog::ShowDirsOnly|
Qt::FileDialog::DontResolveSymlinks)
    @ui.lineEdit_3.setText(path)
  end
end
a = Qt::Application.new(ARGV)
Main.new
a.exec

##############################

Thanks for your help!!

Attachments:
http://www.ruby-forum.com/attachment/7259/mainWindow.rb
http://www.ruby-forum.com/attachment/7263/dialog.rb

--
Posted via http://www.ruby-forum.com/.

what version of ruby? does this work in other OS's?

···

--
Posted via http://www.ruby-forum.com/.