Blame platform-demos/el/image.py.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="image.py" xml:lang="el">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Εικόνα (Python)</title>
Packit 1470ea
    <link type="guide" xref="beginner.py#display-widgets"/>
Packit 1470ea
    <link type="seealso" xref="properties.py"/>
Packit 1470ea
    <link type="next" xref="strings.py"/>
Packit 1470ea
    <revision version="0.2" date="2012-06-14" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Marta Maria Casetti</name>
Packit 1470ea
      <email its:translate="no">mmcasetti@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
    <credit type="editor">
Packit 1470ea
      <name>Sindhu S</name>
Packit 1470ea
      <email its:translate="no">sindhus@live.in</email>
Packit 1470ea
      <years>2014</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Ένα γραφικό στοιχείο που εμφανίζει μια εικόνα</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Ελληνική μεταφραστική ομάδα GNOME</mal:name>
Packit 1470ea
      <mal:email>team@gnome.gr</mal:email>
Packit 1470ea
      <mal:years>2012-2015</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Δημήτρης Σπίγγος</mal:name>
Packit 1470ea
      <mal:email>dmtrs32@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2012, 2013</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Μαρία Θουκιδίδου</mal:name>
Packit 1470ea
      <mal:email>marablack3@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2014</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Θάνος Τρυφωνίδης</mal:name>
Packit 1470ea
      <mal:email>tomtryf@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2014, 2015</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Εικόνα</title>
Packit 1470ea
  <media type="image" mime="image/png" src="media/image.png"/>
Packit 1470ea
  

Αυτή η GtkApplication εμφανίζει ένα αρχείο εικόνας από τον τρέχοντα κατάλογο.

Packit 1470ea
Packit 1470ea
  <note>

Εάν το αρχείο εικόνας δεν φορτωθεί επιτυχώς, η εικόνα θα περιέχει ένα εικονίδιο "σπασμένης εικόνας". Το <file>filename.png</file> χρειάζεται να είναι στον τρέχοντα κατάλογο για να δουλέψει αυτός ο κώδικας.

</note>
Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
  <title>Ο χρησιμοποιούμενος κώδικας για παραγωγή αυτού παραδείγματος</title>
Packit 1470ea
Packit 1470ea
  
Packit 1470ea
  from gi.repository import Gtk
Packit 1470ea
import sys
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
    # create a window
Packit 1470ea
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)
Packit 1470ea
        self.set_default_size(300, 300)
Packit 1470ea
Packit 1470ea
        # create an image
Packit 1470ea
        image = Gtk.Image()
Packit 1470ea
        # set the content of the image as the file filename.png
Packit 1470ea
        image.set_from_file("gnome-image.png")
Packit 1470ea
        # add the image to the window
Packit 1470ea
        self.add(image)
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyApplication(Gtk.Application):
Packit 1470ea
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Application.__init__(self)
Packit 1470ea
Packit 1470ea
    def do_activate(self):
Packit 1470ea
        win = MyWindow(self)
Packit 1470ea
        win.show_all()
Packit 1470ea
Packit 1470ea
    def do_startup(self):
Packit 1470ea
        Gtk.Application.do_startup(self)
Packit 1470ea
Packit 1470ea
app = MyApplication()
Packit 1470ea
exit_status = app.run(sys.argv)
Packit 1470ea
sys.exit(exit_status)
Packit 1470ea
Packit 1470ea
  
Packit 1470ea
Packit 1470ea
  

Ένας άλλος τρόπος για να πάρετε ότι έχουμε στο παράδειγμα είναι η δημιουργία της εικόνας ως ένα στιγμιότυπο μιας άλλης κλάσης και προσθήκη του στο στιγμιότυπο του MyWindow στη μέθοδο do_activate(self):

Packit 1470ea
Packit 1470ea
  
Packit 1470ea
    # a class to create a window
Packit 1470ea
    class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)
Packit 1470ea
        self.set_default_size(300, 300)
Packit 1470ea
Packit 1470ea
    # a class to create an image
Packit 1470ea
    class MyImage(Gtk.Image):
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Image.__init__(self)
Packit 1470ea
        self.set_from_file("gnome-image.png")
Packit 1470ea
Packit 1470ea
    class MyApplication(Gtk.Application):
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Application.__init__(self)
Packit 1470ea
Packit 1470ea
    def do_activate(self):
Packit 1470ea
        # create an instance of MyWindow
Packit 1470ea
        win = MyWindow(self)
Packit 1470ea
        # create an instance of MyImage and add it to the window
Packit 1470ea
        win.add(MyImage())
Packit 1470ea
        # show the window and everything on it
Packit 1470ea
        win.show_all()
Packit 1470ea
  
Packit 1470ea
Packit 1470ea
  <note>
Packit 1470ea
    

Για να χρησιμοποιήσετε αυτό το τμήμα κώδικα, θα χρειαστεί να προσθέσετε τον κώδικα που εισάγει τα Gtk και GdkPixbuf από το gi.repository και τις γραμμές που αντιπροσωπεύουν το παράθυρο MyApplication.

Packit 1470ea
  </note>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="methods">
Packit 1470ea
  <title>Χρήσιμες μέθοδοι για γραφικό στοιχείο εικόνας</title>
Packit 1470ea
Packit 1470ea
  <list>
Packit 1470ea
    <item>
Packit 1470ea
      

Για φόρτωση εικόνας μέσω δικτύου χρησιμοποιήστε set_from_pixbuf(pixbuf), όπου pixbuf είναι <link href="https://developer.gnome.org/gdk-pixbuf/unstable/index.html"> GdkPixbuf</link>.

Packit 1470ea
      
Packit 1470ea
        from gi.repository import Gtk
Packit 1470ea
        from gi.repository import GdkPixbuf
Packit 1470ea
        import sys
Packit 1470ea
Packit 1470ea
        class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
            # create a window
Packit 1470ea
            def __init__(self, app):
Packit 1470ea
                Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)
Packit 1470ea
                self.set_default_size(300, 300)
Packit 1470ea
Packit 1470ea
                # create a pixbuf from file filename="gnome-image.png", with width=32
Packit 1470ea
                # and height=64 amd boolean preserve_aspect_ratio=False.
Packit 1470ea
                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale("gnome-image.png", 64, 128, False)
Packit 1470ea
Packit 1470ea
                # create an image
Packit 1470ea
                image = Gtk.Image()
Packit 1470ea
                # set the content of the image as the pixbuf
Packit 1470ea
                image.set_from_pixbuf(pixbuf)
Packit 1470ea
                # add the image to the window
Packit 1470ea
                self.add(image)
Packit 1470ea
        
Packit 1470ea
        

Εάν preserve_aspect_ratio=True μπορούμε να χρησιμοποιήσουμε new_from_file_at_size(filename, width, height). Εάν width ή height είναι -1, δεν περιορίζεται.

Packit 1470ea
        

Για φόρτωση από ροή εισόδου, δείτε new_from_stream() και new_from_stream_at_scale() στην τεκμηρίωση

Packit 1470ea
    </item>
Packit 1470ea
  </list>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="references">
Packit 1470ea
    <title>Αναφορές API</title>
Packit 1470ea
Packit 1470ea
    

Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:

Packit 1470ea
    <list>
Packit 1470ea
      <item>
Packit 1470ea
        

<link href="https://developer.gnome.org/gtk3/unstable/GtkImage.html"> GtkImage</link>

Packit 1470ea
      </item>
Packit 1470ea
      <item>
Packit 1470ea
        

<link href="https://developer.gnome.org/gtk3/unstable/GtkWindow.html"> GtkWindow</link>

Packit 1470ea
      </item>
Packit 1470ea
    </list>
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
</page>