Fremdwörter/Buchstaben
Wie kann ich Fremdwörter in mein Programm einbauen? Ich denke vor allem daran Wörter/Buchtstaben zu verwenden die nicht in unserem Zeichensatz vorkommen (z.B.:Griechisch). Wie kann ich jetzt Griechische Wörter mit deutschen koppeln. Kennt jemand den richtigen Zeichensatz dazu oder wie würdet ihr das machen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ein passender Zeichensatz wäre UTF-8.. dazu Unicode Strings und die Buchstaben kann man dann mit u"\uZZZZ" escapen... so etwa wie hier.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das Beispiel ist nicht dazu geeignet in Deinem Programm verwendet zu werden, es zeigt nur, wie man mit u'\uXXXX' ein Unicode-Zeichen als Codepoint eingeben kann. Das sollte für Dich aber egal sein, weil Du die Daten ja nicht als Python-Zeichenketten in den Quelltext eingibst sondern in Dateien speicherst und aus ihnen wieder einliest.
Du solltest Dich vorher erstmal generell mit Unicode beschäftigen. Und Dir klarmachen wie die `encode()` und `decode()` Methoden auf (Unicode)Zeichenketten in Python wirken.
Und dann brauchst Du eine GUI, die mit Unicode klarkommt, damit Du bzw. der Benutzer Deines Programms die Daten auch sehen und eingeben kann. Tkinter kennt Unicode zum Beispiel.
Du solltest Dich vorher erstmal generell mit Unicode beschäftigen. Und Dir klarmachen wie die `encode()` und `decode()` Methoden auf (Unicode)Zeichenketten in Python wirken.
Und dann brauchst Du eine GUI, die mit Unicode klarkommt, damit Du bzw. der Benutzer Deines Programms die Daten auch sehen und eingeben kann. Tkinter kennt Unicode zum Beispiel.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Dazu auch die Unicode FAQ.BlackJack hat geschrieben:Du solltest Dich vorher erstmal generell mit Unicode beschäftigen. Und Dir klarmachen wie die `encode()` und `decode()` Methoden auf (Unicode)Zeichenketten in Python wirken.
PyGTK kann das auch.BlackJack hat geschrieben:Und dann brauchst Du eine GUI, die mit Unicode klarkommt, damit Du bzw. der Benutzer Deines Programms die Daten auch sehen und eingeben kann. Tkinter kennt Unicode zum Beispiel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hab mir die FAQ durchgelesen, also wenn ich das jetzt richtig verstanden habe, behinaltet der Unicode für jedes Zeichen der Welt einen ByteCode? Alles schön und gut aber näher auf die Wiedergabe in Python wurde nicht eingegangen.
Nehmen wir mal an ich will den String u'\u1FF6' in einer GUI wiedergeben (Sollte eigentilch ein Omega mit einer Welle darüber sein.
Hab ein kleines PYthon-Script geschrieben um das zu testen, basiert auf dem Quiz-Script von Leonidas Es will aber nicht wirklich das Zeichen anzeigen das ich will:
quiz.glade:
Das ganze ist nur schnell umgeändert worden und ist deshalb nicht gerade perfekt aufgebaut.
Nehmen wir mal an ich will den String u'\u1FF6' in einer GUI wiedergeben (Sollte eigentilch ein Omega mit einer Welle darüber sein.
Hab ein kleines PYthon-Script geschrieben um das zu testen, basiert auf dem Quiz-Script von Leonidas Es will aber nicht wirklich das Zeichen anzeigen das ich will:
Code: Alles auswählen
import gtk
import gtk.glade
def texts():
"""Set the labels"""
next.set_label("Save")
ok.set_label("ok")
label.set_label("Go!")
def button_clicked(widget):
"""The event handler for the two buttons"""
answer = widget.get_name()
lala = eingabe.get_text()
label.set_label(str(lala.encode("utf-16le")))
#--------------------------------------------------------------------
def delete_event(widget, event):
"""The program is finishing"""
gtk.main_quit()
return False
#--------------------------------------------------------------------
ui = gtk.glade.XML("quiz.glade")
label = ui.get_widget("question")
eingabe = ui.get_widget("answer")
ok = ui.get_widget("ok")
next = ui.get_widget("next")
main_win = ui.get_widget("vokabel")
signals = {"on_quizwin_delete_event": delete_event,
"on_ok_clicked": button_clicked, "on_next_clicked": button_clicked}
ui.signal_autoconnect(signals)
#--------------------------------------------------------------------
if __name__ == '__main__':
texts()
gtk.main()
Code: Alles auswählen
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="vokabel">
<property name="visible">True</property>
<property name="title" translatable="yes">Vokabel</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<signal name="delete_event" handler="on_quizwin_delete_event" last_modification_time="Wed, 15 Dec 2004 14:51:11 GMT"/>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="question">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkButton" id="next">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Ugu</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_next_clicked" last_modification_time="Sun, 17 Apr 2005 07:11:44 GMT"/>
</widget>
<packing>
<property name="padding">3</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="answer">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="padding">8</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="ok">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Aga</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_ok_clicked" last_modification_time="Sun, 17 Apr 2005 07:11:37 GMT"/>
</widget>
<packing>
<property name="padding">2</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ist doch kein Problem:
Ich habe aber keine Schriftart die dieses Omaga darstellen kann.. 
Code: Alles auswählen
import gtk
w = gtk.Window()
l = gtk.Label(u'\u1FF6')
w.add(l)
w.show_all()
gtk.main()

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich denke, das Thema sollte ich splitten und einen Teil ins GTK+ Forum verschieben. Denn das hat schon lange nichts mehr mit allgemeine Fragen zu tun.marco_ hat geschrieben:wie kann ich den unter gtk/gnome, die Schriftart für das gesammte Programm umstellen??
Schriftarten ändern geht folgendermaßen:
Code: Alles auswählen
import gtk, pango
w = gtk.Window()
w.connect('delete-event', lambda x, y: gtk.main_quit())
label = gtk.Label("MyLabel")
label.modify_font(pango.FontDescription("Times New Roman 20"))
w.add(label)
w.show_all()
gtk.main()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice