Blame platform-demos/el/textview.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="textview.py" xml:lang="el">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Προβολή κειμένου (TextView) (Python)</title>
Packit 1470ea
    <link type="guide" xref="beginner.py#multiline"/>
Packit 1470ea
    <link type="seealso" xref="strings.py"/>
Packit 1470ea
    <link type="seealso" xref="scrolledwindow.py"/>
Packit 1470ea
    <link type="next" xref="dialog.py"/>
Packit 1470ea
    <revision version="0.2" date="2012-06-19" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Sebastian Pölsterl</name>
Packit 1470ea
      <email its:translate="no">sebp@k-d-w.org</email>
Packit 1470ea
      <years>2011</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright editor">
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
Packit 1470ea
    <desc>Γραφικό στοιχείο που εμφανίζει ένα GtkTextBuffer</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>Προβολή κειμένου (TextView)</title>
Packit 1470ea
Packit 1470ea
  <note style="sidebar">

Αυτό είναι ένα παράδειγμα του Gtk.TextView.

Packit 1470ea
  

Εάν πατήσετε "enter", έχουμε νέα γραμμή.

Packit 1470ea
  

Αλλά μπορούμε επίσης να έχουμε μια νέα γραμμή εάν γράψουμε μια μεγάλη πρόταση (το κείμενο θα αναδιπλωθεί διακόπτοντας τις γραμμές μεταξύ των λέξεων).

Packit 1470ea
  

Εάν έχουμε μια μεγάαααααααααααααααααααααααααααααααλη

Packit 1470ea
  

(που ήταν μεγάλη)

Packit 1470ea
  

λέξη, μια οριζόντια γραμμή κύλισης θα εμφανιστεί.

</note>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/textview.png"/>
Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
  <title>Ο χρησιμοποιούμενος κώδικας για παραγωγή αυτού παραδείγματος</title>
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
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="TextView Example", application=app)
Packit 1470ea
        self.set_default_size(300, 450)
Packit 1470ea
Packit 1470ea
        # a scrollbar for the child widget (that is going to be the textview)
Packit 1470ea
        scrolled_window = Gtk.ScrolledWindow()
Packit 1470ea
        scrolled_window.set_border_width(5)
Packit 1470ea
        # we scroll only if needed
Packit 1470ea
        scrolled_window.set_policy(
Packit 1470ea
            Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
Packit 1470ea
Packit 1470ea
        # a text buffer (stores text)
Packit 1470ea
        buffer1 = Gtk.TextBuffer()
Packit 1470ea
Packit 1470ea
        # a textview (displays the buffer)
Packit 1470ea
        textview = Gtk.TextView(buffer=buffer1)
Packit 1470ea
        # wrap the text, if needed, breaking lines in between words
Packit 1470ea
        textview.set_wrap_mode(Gtk.WrapMode.WORD)
Packit 1470ea
Packit 1470ea
        # textview is scrolled
Packit 1470ea
        scrolled_window.add(textview)
Packit 1470ea
Packit 1470ea
        self.add(scrolled_window)
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
  </section>
Packit 1470ea
Packit 1470ea
  <section id="methods">
Packit 1470ea
  <title>Χρήσιμες μέθοδοι για ένα γραφικό στοιχείο TextView</title>
Packit 1470ea
  

Μια Gtk.TextView εμφανίζει το αποθηκευμένο κείμενο σε μια Gtk.TextBuffer. Όμως, η περισσότερη επεξεργασία του κειμένου πραγματοποιείται με επαναλήπτες, αντιπροσωπευόμενοι από ένα Gtk.TextIter - μια θέση μεταξύ δύο χαρακτήρων στην ενδιάμεση μνήμη του κειμένου. Οι επαναλήπτες δεν είναι έγκυροι επ' άπειρο· όποτε η ενδιάμεση μνήμη τροποποιείται με τρόπο που επηρεάζει τα περιεχόμενα της ρυθμιστικής μνήμης, όλοι οι εκκρεμείς επαναλήπτες γίνονται άκυροι. Λόγω αυτού, οι επαναλήπτες δεν μπορούν να χρησιμοποιηθούν για να διατηρήσουν τις θέσεις με τις τροποποιήσεις της ενδιάμεσης μνήμης. Για να διατηρήσετε μια θέση, χρησιμοποιούμε ένα Gtk.TextMark, που μπορεί να οριστεί ορατό με visible(True). Μια ενδιάμεση μνήμη κειμένου περιέχει δύο ενσωματωμένα σημάδια· ένα σημάδι "εισαγωγής" (η θέση του δρομέα) και το σημάδι "δέσμευση_επιλογής".

Packit 1470ea
  

Μέθοδοι για ένα γραφικό στοιχείο προβολής κειμένου (TextView):

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

Το γραφικό στοιχείο TextView είναι από προεπιλογή επεξεργάσιμο. Εάν προτιμάτε αλλιώς, χρησιμοποιήστε set_editable(False). Εάν η ενδιάμεση μνήμη δεν έχει επεξεργάσιμο κείμενο, ίσως να είναι μια καλή ιδέα να χρησιμοποιήσετε set_cursor_visible(False) επίσης.

</item>
Packit 1470ea
    <item>

Η στοίχιση του κειμένου ορίζεται με set_justification(Gtk.Justification.JUSTIFICATION) όπου JUSTIFICATION είναι ένα από τα LEFT, RIGHT, CENTER, FILL.

</item>
Packit 1470ea
    <item>

Η αναδίπλωση γραμμής του κειμένου ορίζεται με set_wrap_mode(Gtk.WrapMode.WRAP) όπου WRAP είναι ένα από NONE (η περιοχή του κειμένου γίνεται πλατύτερη), CHAR (η αλλαγή γραμμών οπουδήποτε ο δρομέας μπορεί να εμφανιστεί), WORD (αλλαγή γραμμών μεταξύ λέξεων), WORD_CHAR (αλλαγή γραμμών μεταξύ λέξεων, αλλά εάν αυτό δεν είναι αρκετό μεταξύ χαρακτήρων).

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

Μέθοδοι για ένα γραφικό στοιχείο TextBuffer:

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

Η get_insert() επιστρέφει το Gtk.TextMark που αναπαριστά τον δρομέα, που είναι το σημείο εισαγωγής.

</item>
Packit 1470ea
    <item>

Η get_selection_bound() επιστρέφει το Gtk.TextMark που αναπαριστά την δεσμευμένη επιλογή.

</item>
Packit 1470ea
    <item>

Ο set_text("some text", length) όπου length είναι ένας θετικός ακέραιος ή -1, ορίζει το περιεχόμενο της ενδιάμεσης μνήμης ως τους πρώτους χαρακτήρες length του κειμένου "some text". Εάν το length παραλείπεται ή -1, το κείμενο εισάγεται πλήρως. Το περιεχόμενο της ενδιάμεσης μνήμης, εάν υπάρχει κάποια, καταστρέφεται.

</item>
Packit 1470ea
    <item>

Η insert(iter, "some text", length) όπου iter είναι ένας επαναλήπτης κειμένου και length είναι ένας θετικός ακέραιος ή -1, εισάγει στην ενδιάμεση μνήμη στο iter τους πρώτους χαρακτήρες length του κειμένου "some text". Εάν το length παραληφθεί ή -1, το κείμενο εισάγεται πλήρως.

</item>
Packit 1470ea
    <item>

Η insert_at_cursor("some text", length) κάνει το ίδιο με την insert(iter, "some text", length), με τον τρέχοντα δρομέα να λαμβάνεται ως iter.

</item>
Packit 1470ea
    <item>

Η create_mark("mark_name", iter, left_gravity) όπου iter είναι ένα Gtk.TextIter και left_gravity είναι τιμή Μπουλ, δημιουργεί ένα Gtk.TextMark στη θέση του iter. Εάν "mark_name" είναι None, το σημάδι είναι ανώνυμο· αλλιώς, το σημάδι μπορεί να ανακτηθεί κατά όνομα χρησιμοποιώντας get_mark(). Εάν ένα σημάδι έχει υπολειπόμενη βαρύτητα και το κείμενο εισάγεται στην τρέχουσα θέση του σημαδιού, το σημάδι θα μετακινηθεί στα αριστερά του νεοεισαγμένου κειμένου. Εάν η left_gravity παραληφθεί, προεπιλέγεται το False.

</item>
Packit 1470ea
    <item>

Για να ορίσετε ότι κάποιο κείμενο στην ενδιάμεση μνήμη πρέπει να έχει ειδική μορφοποίηση, πρέπει να ορίσετε μια ετικέτα να κρατήσει αυτήν την πληροφορία μορφοποίησης και έπειτα να εφαρμόσει αυτήν την ετικέτα στην περιοχή του κειμένου χρησιμοποιώντας create_tag("tag name", property) και apply_tag(tag, start_iter, end_iter) όπως στο, για παράδειγμα:

Packit 1470ea
      
Packit 1470ea
tag = textbuffer.create_tag("orange_bg", background="orange")
Packit 1470ea
textbuffer.apply_tag(tag, start_iter, end_iter)
Packit 1470ea
     

Τα ακόλουθα είναι μερικές από τις κοινές εφαρμοζόμενες τεχνοτροπίες στο κείμενο:

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

Χρώμα παρασκηνίου (ιδιότητα "background")

</item>
Packit 1470ea
        <item>

Χρώμα προσκηνίου (ιδιότητα "foreground")

</item>
Packit 1470ea
        <item>

Υπογράμμιση (ιδιότητα "underline")

</item>
Packit 1470ea
        <item>

Έντονα (ιδιότητα "weight")

</item>
Packit 1470ea
        <item>

Πλάγια (ιδιότητα "style")

</item>
Packit 1470ea
        <item>

Διαγράμμιση (ιδιότητα "strikethrough")

</item>
Packit 1470ea
        <item>

Στοίχιση (ιδιότητα "justification")

</item>
Packit 1470ea
        <item>

Μέγεθος (ιδιότητες "size" και "size-points")

</item>
Packit 1470ea
        <item>

Αναδίπλωση κειμένου (ιδιότητα "wrap-mode")

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

Μπορείτε επίσης να διαγράψετε συγκεκριμένες ετικέτες αργότερα χρησιμοποιώντας remove_tag() ή να διαγράψετε όλες τις ετικέτες σε μια δεδομένη περιοχή καλώντας remove_all_tags().

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

Μέθοδοι για γραφικό στοιχείο TextIter

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

Η forward_search(needle, flags, limit) αναζητά μπροστά για needle. Η αναζήτηση δεν θα συνεχίσει πέρα από το όριο Gtk.TextIter. Οι flags μπορούν να οριστούν σε ένα από τα ακόλουθα, ή οποιονδήποτε συνδυασμό του συνενώνοντας τους με τον τελεστή OR |: 0 (η συμφωνία πρέπει να είναι ακριβής)· Gtk.TextSearchFlags.VISIBLE_ONLY (η συμφωνία μπορεί να έχει αόρατο κείμενο διανθισμένο σε βελόνα)· Gtk.TextSearchFlags.TEXT_ONLY (η συμφωνία μπορεί να έχει γραφικά στοιχεία pixbufs ή θυγατρικά ανακατεμένα μέσα στην περιοχή συμφωνίας)· το Gtk.TextSearchFlags.CASE_INSENSITIVE (το κείμενο θα ταιριάζει ανεξάρτητα από κεφαλαία/μικρά). Η μέθοδος επιστρέφει μια πλειάδα που περιέχει ένα Gtk.TextIter που δείχνει στην αρχή και στον πρώτο χαρακτήρα μετά τη συμφωνία· εάν δεν βρεθεί συμφωνία, ο None επιστρέφεται.

</item>
Packit 1470ea
    <item>

Η backward_search(needle, flags, limit) κάνει το ίδιο όπως η forward_search(), αλλά κινείται προς τα πίσω.

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

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

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

<link href="http://developer.gnome.org/gtk3/unstable/GtkTextView.html">GtkTextView</link>

</item>
Packit 1470ea
    <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkTextBuffer.html">GtkTextBuffer</link>

</item>
Packit 1470ea
    <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkTextTag.html">GtkTextTag</link>

</item>
Packit 1470ea
    <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkScrolledWindow.html">GtkScrolledWindow</link>

</item>
Packit 1470ea
    <item>

<link href="http://developer.gnome.org/gtk3/unstable/gtk3-Standard-Enumerations.html">Standard Enumerations</link>

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