From: Bharadwaj Srigiriraju Date: 2012-04-12T17:12:12+09:00 Subject: 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/.