Mit PythonCard bei Button wenn man ...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Hallo an alle,

ich wollte mal fragen(wahrscheinlich *wieder einmal* eine dumme Frage) ob mir jemand erklären könnte wie man wenn man "PythonCard" "Ressource Editor" geöffnet hat und einen neuen Button erstellt hat machen kann dass wenn man auf den Button daraufklickt der text sich in definierbarer Zeit ändert(also mit zeit könnte man doch "time.sleep" benutzen oder?)(also das z.B am Anfang (nur nen beispiel) da steht: "Hier daraufklicken." dann wenn man daraufklickt kommt nach 2Sekunden "Hallo" und dann einfach wieder nach 2Sekunden "Tschüss")

Ich freue mich auf antworten,
Pyanfänger

PS: o.O Meine Rechtschreibung und Grammatik ist ewig schlecht... Bitte einfach nicht beachten :)
PS2(falls man das so sagt):Wisst ihr auch wie man es schaffen kann dass Python beim ausführen eine Datei öffnet? habe es schon mit "open" probiert aber nicht hingekriegt...
-
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Was meinst du mit Datei öffnen? Das hier?

Code: Alles auswählen

with open(dateiname) as f:
    print f.read()
Oder willst du eine Datei in diesem veralteten PythonCard anzeigen?

Wenn du `time.sleep` benutzt, dann friert deine Oberfläche für „eine definierte Zeit“ ein, sobald du auf den Button klickst. Dann müsstest du Threads benutzen …
Zuletzt geändert von nomnom am Freitag 3. Februar 2012, 19:28, insgesamt 1-mal geändert.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Die erste Frage klingt irgendwie sehr nach Visual Basic 6. Und zur zweiten Frage: Die Datei ist schön geöffnet und wartet geradezu darauf von dir massakriert zu werden.
BlackJack

@Pyanfänger: Zeitverzögerte Aktionen kann man bei GUIs, wie schon gesagt wurde, nicht mit `time.sleep()` umsetzen, weil dann für die Zeit die GUI nicht mehr reagiert. Threads gehen meistens auch nicht, jedenfalls nicht so ohne weiteres, da GUIs in der Regel nur in dem Thread verändert werden dürfen, in dem die Hauptschleife des GUI-Toolkits läuft. Die meisten GUI-Toolkits haben deshalb eine Möglichkeit Aufrufe zeitverzögert über die GUI-Hauptschleife auszulösen. Zum Beispiel über Funktionen/Methoden oder "Timer"-Objekte. In wie weit PythonCard zugriff auf so etwas gewährt, kann ich Dir nicht sagen. Du solltest davon aber vielleicht sowieso mal weg kommen.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

@Alle

Danke für die Antworten :D

Achso wusste nicht dass es dann komplett einfriert :/ . Was ist Visual Basic 6?
Und wie meinst du das von solchen GUI sachen wegzukommen? :( wie soll ich dann GUI's benutzen? ;( (bin halt noch anfänger...)
also gibts keine möglichkeit den text im gleichen Button verändern zu lassen?
-
BlackJack

@Pyanfänger: Mit dem weg kommen war PythonCard gemeint. Und es gibt sicher eine Möglichkeit den Text zu ändern. Du musst halt nur heraus finden wie man das bei PythonCard machen kann…
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Mit Visual Basic 6 meinte ich die gleichnamige Programmiersprache, die ich damals vor Ewigkeiten anfing zu lernen. Dort sind GUIs Pflicht und alles an Programmcode an sie und ihre Elemente gebunden. Da der GUI-Designer nur absolut (statt relativ) arbeitete, konnte man nicht einmal GUIs erstellen, die nach Größenänderung genauso angeordnet waren. Und besagte Limitation und alle anderen luden mich (und sicherlich genug andere Leute) regelrecht dazu ein solchen Müll anzufangen wie z.B. Button-Beschriftungen dynamisch zu ändern, Buttons verschwinden zu lassen, durch direkte API-Aufrufe anderen Mist zu veranstalten (wie z.B. den Startbutton zu verschieben) und weiß der Geier was noch alles.

Alles das sollte ein guter Programmierer heutzutage nicht tun. Und ja, wenn dich Pythoncard auch zu sowas ermutigt, würde ich dir empfehlen auf ein anderes GUI-System umzusteigen.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Oh.. :oops:
Naja so ungefähr fast jedes programm hat doch GUI's?
Oder meint ihr ich soll was anderes 5c6905b58daeb8f177b2c7a818für die GUI's benutzen?(also ich habe verstanden dass ich gar keine GUI mehr benutzen soll)
@Nomnom
Ne Ich wollte eigentlich dass wenn man zb auf einen Burton klickt er eine Datei (zb ein Spiel) ausführt.jetzt kommt noch ne frage dazu: kann man machen dass Web man das Programm zb jemandem schickt und er auf den Button klickt das Programm den ganzen pc durchsucht ob dieses zb spiel da ist und wenn nicht dass es automatisch gedownloadet wird?is nur neben sächlich , und wenn ich ein Programm schicke meist nur an nen anderen pc von mir


Pyanfänger


PS : Tut so als ob ihr das alles einen 12jährigem Kind erklären müsstet xD
-
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Dateien ausführen geht mit subprocess.

Wieso aber um Gottes willen sollte ein Programm nach einem Spiel suchen? Ist es etwa zuviel verlangt für den Nutzer es selbst zu starten? Mal davon abgesehen, dass das viel leichter und sinnvoller wäre als extra ein Programm für zu schreiben. Klingt ein wenig nach "Ich bin zu faul mir die Pizza zu holen, also baue ich einen Roboter, der mir die Pizza holt obwohl ich sie viel schneller selbst holen könnte.".
Natürlich kann man das alles tun, nur stellt sich die Frage welchen Sinn es haben sollte so zu verfahren. Automatisches Herunterladen wäre ja schön und gut wenn es dazu dient das eigene Programm mit Updates zu versorgen, aber das ist ja hier nicht der Fall. Also wozu das Ganze?
lunar

@webspider: Vielleicht möchte der OP einfach nur programmieren lernen, und hatte einfach nur keine andere Idee für ein erstes Projekt. Mag sinnlos sein, doch Dein erstes Programm hat sicherlich auch keine Mondrakete gesteuert :roll:
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

@lunar


Ein bisschen so ist es :D
-
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

lunar hat geschrieben:Mag sinnlos sein, doch Dein erstes Programm hat sicherlich auch keine Mondrakete gesteuert :roll:
Da gab es doch neulich diese Marsrakete der Russen, die aufgrund eines Programmierfehlers abstürzte :-D
Pyanfänger hat geschrieben: Naja so ungefähr fast jedes programm hat doch GUI's?
Hm... eher nein. Ohne einen Beleg zu haben würde ich fast so weit gehen zu sagen, die meisten Programme kommen ohne GUI daher (alleine die zig Millionen "Hello World"-Programme, die in aller Welt geschrieben werden...). Aber auch im täglichen Leben gibt es sehr sehr viele reine CLI basierten Programme. Für Anfänger ist es sehr empfehlenswert, erst einmal auf GUIs zu verzichten, da diese normalerweise bereits ein großes Verständnis der Sprache voraussetzen, die man grad erst erlernen will. Zudem kommen dann noch Aspekte wie nebenläufige Programmierung hinzu.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Oh ok :oops:

Danke für die Zahlreichen Antworten :D
-
Antworten