[Kde-bindings] Help with loading an image from a URL
Chris Gow
sniffy at rogers.com
Wed Jun 6 15:57:42 UTC 2007
On Wednesday 06 June 2007 10:51:02 Chris Gow wrote:
> On Wednesday 06 June 2007 10:09:35 Richard Dale wrote:
> > On Wednesday 06 June 2007, Chris Gow wrote:
> > > Hello:
> > >
> > > Not sure if this is exactly the most correct list to post to, but since
> > > the program I am writing is in Ruby using the kde/ruby bindings I
> > > thought I would post here.
> > >
> > > I'm trying to load an image from a url into a widget but I am getting
> > > stuck
> > >
> > > : (. I can make a connection to the site and get the data (at least
> > > : that's
> > >
> > > what appears to be happening) but no data is ever returned. Below is a
> > > sample of what I am trying to accomplish. There seems to be a lot of
> > > overhead so its entirely possible that this is not the correct way to
> > > do what I want.
> > >
> > >
> > > #!/usr/bin/ruby
> > > require 'Korundum'
> > >
> > > class MyClass < KDE::MainWindow
> > > slots 'done(bool)'
> > > def initialize( name )
> > > super(nil, name)
> > > @dataByteArray = Qt::ByteArray.new
> > > @data = Qt::Buffer.new(@dataByteArray)
> > > @data.open(Qt::IO_ReadWrite)
> > > @http = Qt::Http.new(self)
> > > connect(@http, SIGNAL("done(bool)"), self,
> > > SLOT("done(bool)")) @http.setHost("www.google.ca")
> > > @http.get("/intl/en_ca/images/logo.gif", @buffer)
> > >
> > > end
> > >
> > > def done(err)
> > > if (!err)
> > > label = Qt::Label.new("", self)
> > > label.resize(300, 200)
> > > label.setText(@dataByteArray.size.to_s)
> > > setCentralWidget(label)
> > > label.show
> > > end
> > > end
> > > end
> > >
> > > about = KDE::AboutData.new( "p2", "Test", "0.1" )
> > > KDE::CmdLineArgs.init( ARGV, about )
> > > app = KDE::Application.new( )
> > >
> > > window = MyClass.new("Test")
> > >
> > > app.mainWidget = window
> > > window.resize(300,200)
> > > window.show
> > >
> > > app.exec
> > >
> > > Currently it will display 0 in the label, I was trying to see if any
> > > data was being returned before I attempted to display anything.
> >
> > I haven't tried the example out, but shouldn't the line:
> > @http.get("/intl/en_ca/images/logo.gif", @buffer)
> >
> > be:
> > @http.get("/intl/en_ca/images/logo.gif", @data)
>
> I'm idiot, yes it should be. I originally called it @buffer then later
> changed it. Still have to get used to dynamic languages :(
>
Ok its working correctly, but is this the correct way to load an image from a
remote resource or is there an easier way?
-- chris
More information about the Kde-bindings
mailing list