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(‘close()’))
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!!