Вот очень ленивый способ сделать это:
#!/usr/bin/ruby
require 'rubygems'
require 'fox16'
include Fox
theApp = FXApp.new
theMainWindow = FXMainWindow.new(theApp, "Hello")
theButton = FXButton.new(theMainWindow, "Hello, World!")
theButton.tipText = "Push Me!"
iconFile = File.open("icon.jpg", "rb")
theButton.icon = FXJPGIcon.new(theApp, iconFile.read)
theButton.iconPosition = ICON_ABOVE_TEXT
iconFile.close
theButton.connect(SEL_COMMAND) {
fileToOpen = FXFileDialog.getOpenFilename(theMainWindow, "window name goes here", `echo $HOME`.chomp + "/")
}
FXToolTip.new(theApp)
theApp.create
theMainWindow.show
theApp.run
Это зависит от того, находитесь ли вы в * nix окне (или если установлена переменная окружения $ HOME). Строки, которые конкретно отвечают на ваш вопрос:
theButton.connect(SEL_COMMAND) {
fileToOpen = FXFileDialog.getOpenFilename(theMainWindow, "window name goes here", `echo $HOME`.chomp + "/")
}
Здесь первый аргумент - это окно, которому принадлежит диалоговое окно, второй - это заголовок окна, а третий - путь по умолчанию, с которого нужно начинать (в конце нужен символ "/", иначе он будет начните каталог выше с выбранной домашней папки пользователя). Проверьте эту ссылку для получения дополнительной информации о FXFileDialog.