Forum: Italian Ruby user group Plottare grafici in GTK3

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
33c7c2cca02b80f026c30039cf8e312c?d=identicon&s=25 Michele Boscolo (sphynx)
on 2016-09-16 18:19
Ciao a tutti, avrei l'esigenza di creare un'applicazione in gtk3 che mi
plotta all'interno della mia gui dei grafici, per la creazione dei miei
grafici utilizzo gnuplot,nyaplot,rubyvis come output posso ottenere sia
file svg che canvas html5.
Per ora sono riuscito a crearmi un file svg e visulizzarlo in gtk in
questo modo:

require 'gtk3'
require 'rsvg2'

unless RSVG.cairo_available?
  puts "this sample needs RSVG with cairo support"
  exit(-1)
end

unless Gdk.cairo_available?
  puts "this sample needs GDK with cairo support"
  exit(-1)
end

if ARGV.size != 1
  puts "usage: #{$0} input.svg"
  exit(-1)
end

input = ARGV.shift

handle = RSVG::Handle.new_from_file(input)
width, height = handle.dimensions.to_a

window = Gtk::Window.new
window.set_default_size(width, height)
area = Gtk::DrawingArea.new

window.signal_connect(:destroy) do
  Gtk.main_quit
end

area.signal_connect(:draw) do |widget, event|
  context = widget.window.create_cairo_context
  window_width, window_height = widget.window.size
  context.scale(window_width.to_f / width, window_height.to_f / height)
  context.render_rsvg_handle(handle)
end

window.add(area)
window.show_all

Gtk.main

Fino qui tutto ok, il problema è i grafici all'interno di chrome sono
interattivi, es se mi posizioni su un punto viene visualizzato un popup
con delle informazione, mentre in gtk non viene visualizzato nulla, come
se fosse un'immagine statica es png.

Come idea mi era venuta di creare un file html con i grafici e il codice
javascript, e renderizzarlo all'interno di gtk, ma non so come fare, e
webkit in windows non funziona.

Cercando ho visto anche la possibilità di usare i socket di gtk, e in
gnuplot dare come output x11 ma questo in windows non è supportato.
This topic is locked and can not be replied to.