Hallo,
Als erstes muss ich sagen dass der Einstieg in Python (ich arbeite erst seit 2 Tagen damit) für mich der erste Schritt in irgendeiner Programmiersprache ist und ich dementsprechend ziemlich vor dem nichts stehe.
Ich habe nun schon einige leichte Funktionen kennengelernt und würde mich nun gerne informieren wie ein "professionelles" Programm aufgebaut ist.
Was ich damit meine:
Wenn ich ein Programm wie beispielsweise Winrar habe, so bietet dieses mir eine eigene Gui, sogar mit Grafiken.
Ist soetwas auch unter python möglich?
Desweiteren würde ich mich sehr freuen wenn man mir ein (möglichst deutsches) Anfängertutorial empfehlen könnte, das galileo-Openbook sheint ja recht verpönt zu sein.
Selbst erstellte GUI's?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Vorweg: Ein "professionelles" Programm braucht nicht unbedingt ein GUI.
Was du vorhast ist mit allen Toolkits möglich. Aber an die solltest du dich erst ranwagen, wenn du Python verstanden hast, denn sonst wirft man die Konzepte schnell durcheinander.
http://docs.python.org/index.html
Was du vorhast ist mit allen Toolkits möglich. Aber an die solltest du dich erst ranwagen, wenn du Python verstanden hast, denn sonst wirft man die Konzepte schnell durcheinander.
http://docs.python.org/index.html
- krisi12345
- User
- Beiträge: 205
- Registriert: Mittwoch 4. März 2009, 16:56
- Wohnort: Das schöne München
- Kontaktdaten:
Natürlich!!!Was ich damit meine:
Wenn ich ein Programm wie beispielsweise Winrar habe, so bietet dieses mir eine eigene Gui, sogar mit Grafiken.
Ist soetwas auch unter python möglich?
Diese Seite könnte Ich dir für GUI Anfänger empfehlen:
http://www.wspiegel.de/tkinter/tkinter_index.htm
Und wenn du mir nicht glauben willst:
Code: Alles auswählen
from Tkinter import *
def co():
print "hallo akske"
root = Tk()
but = Button(root,text="drück",command=co)
but.pack()
root.mainloop()
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Dennoch ist es keine gute Idee, sich damit am Anfang zu befassen! Man stellt das Sichtbare dann über die Datenstrukturen und frickelt sich irgend was zusammen ... so lernt man auf Dauer nichts bzw. kommt nichts komplexeres wirklich gebacken.
Muss ich hier ne Highscore-Liste explizit erwähnen?
Muss ich hier ne Highscore-Liste explizit erwähnen?
Das ist mit Qt4 nicht sonderlich schwerer.
Bei anderen Toolkits sieht der Code auch nicht viel anders aus.
Interessant ist es zu sehen wie der Code bei größeren Anwendungen aussieht, welche Widgets das Toolkit bietet und wie mächtig diese sind, wie die GUI aussieht(nativ?), ob es möglich ist die GUI "zusammen zu klicken" und letztendlich wie portabel es ist. Tkinter kann da einfach nicht mithalten.
Code: Alles auswählen
from PyQt4.QtGui import QApplication, QPushButton
from PyQt4.QtCore import SIGNAL
app = QApplication([])
button = QPushButton(u'Push')
def greet(): print u'Hallo akske'
button.connect(button, SIGNAL('clicked()'), greet)
button.show()
app.exec_()
Interessant ist es zu sehen wie der Code bei größeren Anwendungen aussieht, welche Widgets das Toolkit bietet und wie mächtig diese sind, wie die GUI aussieht(nativ?), ob es möglich ist die GUI "zusammen zu klicken" und letztendlich wie portabel es ist. Tkinter kann da einfach nicht mithalten.
Hallo akske,
Ich finde das galileo-Openbook für Anfänger gar nicht schlecht. Die Autoren erklären zumindest vieles in allgemeinverständlicher Sprache. Ich habe noch kein vergleichbares gesehen nur einige viel schlechtere und vor allem konzeptlosere.
Das Tutorium von Van Rossum ist auch nicht schlecht:
http://starship.python.net/crew/gherman ... nline/tut/
Wenn du die Grundlagen einigermaßen drauf hast, würde ich mit Tkinter weitermachen. Damit kannst du grundlegende Oberflächen gestalten.
Tkinter ist sowieso schon Bestandteil des Pythons, das du auf deinem Rechner installiert hast. Mehr brauchst dur für den Anfang wirklich nicht.
Zum Programmaufbau (zumindest baue ich so auf):
1. (also oben) alle import Anweisungen, z.B. from Tkinter import *
2. globale Vaiablen (soweit du welche benötigst)
3. Funktionen, also: def meine_erste_funktion():
4. Dann die grafische Oberfläche mit root... (labels, buttons usw.)
Wenn du dann noch eine gute Programmidee hast, die deine Motivation wach hält, wirst du sehr schnell voran kommen.
Ich wünsche dir frohes lernen und viel Spaß und Erfolg!
py-mule
Ich finde das galileo-Openbook für Anfänger gar nicht schlecht. Die Autoren erklären zumindest vieles in allgemeinverständlicher Sprache. Ich habe noch kein vergleichbares gesehen nur einige viel schlechtere und vor allem konzeptlosere.
Das Tutorium von Van Rossum ist auch nicht schlecht:
http://starship.python.net/crew/gherman ... nline/tut/
Wenn du die Grundlagen einigermaßen drauf hast, würde ich mit Tkinter weitermachen. Damit kannst du grundlegende Oberflächen gestalten.
Tkinter ist sowieso schon Bestandteil des Pythons, das du auf deinem Rechner installiert hast. Mehr brauchst dur für den Anfang wirklich nicht.
Zum Programmaufbau (zumindest baue ich so auf):
1. (also oben) alle import Anweisungen, z.B. from Tkinter import *
2. globale Vaiablen (soweit du welche benötigst)
3. Funktionen, also: def meine_erste_funktion():
4. Dann die grafische Oberfläche mit root... (labels, buttons usw.)
Wenn du dann noch eine gute Programmidee hast, die deine Motivation wach hält, wirst du sehr schnell voran kommen.
Ich wünsche dir frohes lernen und viel Spaß und Erfolg!
py-mule
A Byte Of Python fand ich für den Anfang nicht schlecht.
Ist auch in Deutsch.
http://abop-german.berlios.de/
Welches Toolkit du nun für die GUI nimmst... guck dir am besten mal alle an, wie sie aussehen. )
Willst du sie zusammen klicken oder per Code?
Ist auch in Deutsch.
http://abop-german.berlios.de/
Welches Toolkit du nun für die GUI nimmst... guck dir am besten mal alle an, wie sie aussehen. )
Willst du sie zusammen klicken oder per Code?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sorry, aber das ist eine Ansammlung schlechter Tipps und eher die Beschreibung wie man es nicht machen sollte. Vielleicht erklärt es auch, warum du das Openbook magst.py-mule hat geschrieben:Zum Programmaufbau (zumindest baue ich so auf):
1. (also oben) alle import Anweisungen, z.B. from Tkinter import *
2. globale Vaiablen (soweit du welche benötigst)
3. Funktionen, also: def meine_erste_funktion():
4. Dann die grafische Oberfläche mit root... (labels, buttons usw.)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Das ist 10 Jahre alt und deshalb alles andere als empfehlenswert.py-mule hat geschrieben:Das Tutorium von Van Rossum ist auch nicht schlecht:
http://starship.python.net/crew/gherman ... nline/tut/
Ok. Hab ich so in den 90ern in C gelernt. Ist wahrscheinlich wirklich nicht besonders...Leonidas hat geschrieben:Sorry, aber das ist eine Ansammlung schlechter Tipps und eher die Beschreibung wie man es nicht machen sollte. Vielleicht erklärt es auch, warum du das Openbook magst.py-mule hat geschrieben:Zum Programmaufbau (zumindest baue ich so auf):
1. (also oben) alle import Anweisungen, z.B. from Tkinter import *
2. globale Vaiablen (soweit du welche benötigst)
3. Funktionen, also: def meine_erste_funktion():
4. Dann die grafische Oberfläche mit root... (labels, buttons usw.)
War auch nur ein Versuch zu helfen und andere dazu zu bewegen, vielleicht auch mal einen Kommentar dazu abzugeben, was ja auch passiert ist. Schön fände ich es allerdings, wenn dann auch Verbesserungsvorschläge kämen, vielleicht in der Form:
"hey, py-mule, is ja ganz nett, hat mein Uroma 1899 so gemacht, aber heute ist es besser, wenn du es so und so (Verbesserungsvorschlag) angehst."
Dann hat auch derjenige, der sich hilfesuchend an die Forumsgemeine gewendet hat etwas davon.
@Leonidas: also wie geht das, wie ist ein "professionelles Progamm" aufgebaut?
Viele Grüße
py-mule
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Keine Stern-Importe sondern Namen oder Module explizit importieren, dann insbesondere in GUIs die Fenster in Klassen mit Zuständigkeiten Kapseln (ggf auch MVC verwenden), keine globalen Variablen (höchstens globale Konstanten, die aber nie (!) modifiziert werden), die Funktionen die die Fensterinhalte verarbeiten in ihre GUI-Klassen stecken.py-mule hat geschrieben:@Leonidas: also wie geht das, wie ist ein "professionelles Progamm" aufgebaut?
Oftmals sinnvoll ist es, die GUI in externen Dateien zu hinterlegen wie es bei moderenen Toolkits wie GTK+ (Glade, GtkBuilder), Qt (Ui) oder wxWidgets (XRC) üblich ist, so spart man sich den lästigen GUI-Code und kann die GUIs einfach und effizient mit einem richtigen GUI-Designer bauen und verändern.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo akske!akske hat geschrieben:ich arbeite erst seit 2 Tagen damit
- In deinem eigenen Interesse: Lerne zuerst Python, bevor du dich mit der GUI-Programmierung befasst.
- Vermeide Sternchenimporte! Vermeide Sternchenimporte! Vermeide Sternchenimporte! Vermeide Sternchenimporte! Vermeide Sternchenimporte!
- Vermeide Bücher, die hier im Forum von den Profis als "schlecht" abgestempelt werden.
- Tkinter ist zwar bei Python mit dabei, aber es ist, meiner Meinung nach, für GUIs vielleicht nicht gerade die erste Wahl. Die Wahl des GUI-Toolkits hängt von mehreren Faktoren ab. Das ist aber erst dann ein Thema für dich, wenn du dich in Python eingelesen hast.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Vielen Dank für die bisherigen Tips.
Ich werde Sternchenimporte vermeiden, auch wenn ich noch nicht den Unterschied zwischen dieser Art und "richtigen" Importen kenne :D
Die GUI Sache hat mich hauptsächlich interessiert weil ich gelesen habe es sei möglich mit Python Webanwendungen zu schreiben und eine Webanwendung ohne grafische Oberfläche findet beim Durchschnittlichen Nutzer wohl nur wenig Anklang.
Momentan bin ich beim Kapitel Funktionen angekommen und da das mir noc sehr rätselhaft ist lasse ich sowieso ersteinmal die Finger von komplizierteren Dingen :)
Ich werde Sternchenimporte vermeiden, auch wenn ich noch nicht den Unterschied zwischen dieser Art und "richtigen" Importen kenne :D
Die GUI Sache hat mich hauptsächlich interessiert weil ich gelesen habe es sei möglich mit Python Webanwendungen zu schreiben und eine Webanwendung ohne grafische Oberfläche findet beim Durchschnittlichen Nutzer wohl nur wenig Anklang.
Momentan bin ich beim Kapitel Funktionen angekommen und da das mir noc sehr rätselhaft ist lasse ich sowieso ersteinmal die Finger von komplizierteren Dingen :)
Da hast du vollkomen Recht: eine Webanwendung ohne grafische Oberfläche ist wahrlich nicht das gelbe vom Ei. Aber bevor du mit dem Thema "graphische Oberflächen in Webanwendungen" beginnst, solltest du dich mit Funktionen vertraut machen.akske hat geschrieben:Die GUI Sache hat mich hauptsächlich interessiert weil ich gelesen habe es sei möglich mit Python Webanwendungen zu schreiben und eine Webanwendung ohne grafische Oberfläche findet beim Durchschnittlichen Nutzer wohl nur wenig Anklang.
Webanwendungen laufen wohl eher im Browser. Die "GUI"s da sind in html, JavaScript oder Java geschrieben.akske hat geschrieben:Die GUI Sache hat mich hauptsächlich interessiert weil ich gelesen habe es sei möglich mit Python Webanwendungen zu schreiben und eine Webanwendung ohne grafische Oberfläche findet beim Durchschnittlichen Nutzer wohl nur wenig Anklang.
Python kommt da eher auf Servern zum Einsatz, das heißt, der Benutzer gibt Daten typischerweise in ein html/JavaScript-Webformular ein, die Daten werden online zu einem Server geschickt, dort führt ein grafikloses Python-Skript Berechnungen durch und schickt das Ergebnis zurück an den Browser des Benutzers. Python-GUIs braucht man DAFÜR nicht. Schon eher, wenn man einen Browser oder einen Email-Client in Python schreiben will.
Gruß
Das Hautproblem mit Sternchenimporten ist, dass du keinen Überblick darüber hast, was gerade alles importiert wurde. Deswegen kann es durchaus passieren, dass du irgendwelche Namen überschreibst, ohne dass dir das bewusst ist.akske hat geschrieben:Ich werde Sternchenimporte vermeiden, auch wenn ich noch nicht den Unterschied zwischen dieser Art und "richtigen" Importen kenne
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!Darii hat geschrieben:keinen Überblick darüber hast, was gerade alles importiert wurde.
Es geht sogar noch einen Schritt weiter: Gerade als Anfänger weiß man nicht was mit so einem Sternchenimport imporiert wird. Jetzt weiß man nicht, wenn man das Programm durchliest, woher die im Programm verwendeten Befehle/Objekte überhaupt kommen. Das Programm wird schwerer lesbar. Man braucht länger um die Zusammenhänge zu begreifen.
Das verwirrt nicht nur Anfänger. Und deshalb ärgert es mich so sehr, dass Buchautoren so oft Sternchenimporte verwenden.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wenn du einen Sternchenimport benutzt sieht das so aus:
Richtig importiert:
Lg, Jonas
Code: Alles auswählen
from Tkinter import * #~ BÖSE!
root = Tk()
#~ und so weiter...
Code: Alles auswählen
import Tkinter as tk #~ wenn du importierst
root = tk.Tk() #~ kannst du den modulen
#~ ``neue namen`` geben, mit denen sie
#~ so wie hier innerhalb deines skripts auf-
#~ gerufen werden können