@Hannes_1: Wie kannst Du ein Erfolgserlebnis haben wenn Dir jemand fertigen Code gibt? Da hast Du doch gar nichts selber erreicht?
Wenn Du wissen willst ob Python etwas für Dich ist, dann musst Du Dich schon selbst mit der Sprache auseinander setzen. Am besten halt mit den Grundlagen und nicht gleich mit GUI-Programmierung. Das würde ich einem Anfänger nämlich nicht unbedingt für den Start empfehlen.
Man fängt normalerweise mit den Grundlagen an. Linear ablaufender Code. Dann die Kontrollstrukturen für bedingt ausgeführten Code (``if``/``else``) und Wiederholungen (``for``/``while``). Die Grunddatenstrukturen kennenlernen. Dann Aufteilen von Programmen in Funktionen. Ausnahmen und ihre Behandlung. Objektorientierte Programmierung. Und dann erst GUIs, weil damit dann ereignisorientierte Programmierung neu zu den *ganzen anderen Sachen* hinzu kommt, die alle aufeinander aufbauen. Wenn Du mit GUI Programmierung den Anfang machst, hast Du diese ganzen, teils komplexen Themen auf einmal am Hals.
Ansonsten würde man in einer echten Anwendung die GUI wahrscheinlich eher mit Glade entwerfen, statt per Hand zu schreiben. Ob Dir die Python/Gtk+-Kombination zusagt, sieht man also eher an einem Stück Code der Glade verwendet. Die mit Glade erzeugte UI-Beschreibung:
Code: Alles auswählen
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window">
<property name="border_width">10</property>
<property name="title" translatable="yes">Start Kate Window</property>
<signal name="destroy" handler="on_window_destroy"/>
<child>
<object class="GtkButton" id="start_kate">
<property name="label" translatable="yes">_Kate</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="on_start_kate_clicked"/>
</object>
</child>
</object>
</interface>
Und das passende Python-Programm dazu:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from subprocess import Popen
import gtk
class App(object):
def __init__(self):
builder = gtk.Builder()
builder.add_from_file('test.builder')
self.window = builder.get_object('window')
builder.connect_signals(self)
def on_window_destroy(self, _window):
gtk.main_quit()
def on_start_kate_clicked(self, _button):
Popen('kate')
def main():
app = App()
app.window.show_all()
gtk.main()
if __name__ == '__main__':
main()