Darfst du ja auch. Aber du erzaehlst gerade jemand anderes, das er das auch sollte. Und das *ohne* den Hinweis, dass es erstmal nur deine Wahl ist. Es klingt also absolut.

Erstes GUI- ComboBox in Variable schreiben und Verbesserungsvorschläge
- Dennis89
- Thread is Unresolved
-
-
Hallo zusammen,
Linus , Perlchamp , @__deets__ und schlizbäda vielen Dank für eure Antworten!
Werde mich durcharbeiten und das Ergebnis hier wieder präsentieren
OT:
Quote from Perlchampübrigens: ich mag diese sender auch
Damit kommt man ganz gut durch den Tag
Quote from schlizbädaHätte ich nicht besser hingebracht
Humor schadet auch nie
Grüße
Dennis
-
Noch ein Hinweis: In Zeile 33 überschreibst Du die Funktion/Methode player Deiner Instanz.
-
-
-
Sorry wenn das Grundlagefragen sind, aber wenn man jedes zweite Wort in einen Übersetzer eingeben muss, verliert der Satz seine Aussage
guckst du hier : ImTranslator add-on für firefox
auf einer (englischsprachigen) internetseiteseite text markieren und auf die sprechblase klicken ... kannst auch von deutsch nach englisch, oder türkisch, finnisch, etc. unterstützt ~100 sprachen, die übersetzung soll gut sein ...
-
-
-
Guten Abend,
versuche gerade diese Änderung umzusetzen:
- der media player sollte nur *einmal* erzeugt werden, und dann immer bei Senderwahl der entsprechende Teil laufen, welcher den VLC-Player anweist, den Stream zu spielen.
Ist es richtig, dass diese beiden Zeilen den Player erzeugen und ich diese aus der Funktion def player nehmen muss?
Pythoninstance = vlc.Instance('--input-repeat=-1', '--fullscreen') self.player = instance.media_player_new()
Also muss ich es so hinbekommen, dass diese Zeilen global für die Funktionen zugänglich sind?
Die Zeilen für den Player stammen nicht von mir, deswegen die Frage
Danke, gute Nacht und Grüße
Dennis
-
Nicht GLOBAL. Als Instanzvariablen in der Klasse. So wie zb auch self.lst.
-
Guten Abend zusammen,
habe alle Änderungen (hoffentlich) abgearbeitet und hier ist das funktionsfähige Ergebnis:
Python
Display More#!/usr/bin/env python3 import tkinter import vlc class MyApp(tkinter.Frame): def __init__(self, master): super().__init__(master) self.pack() self.createWidgets() def createWidgets(self): """Diese Funktion erstellt die Bedienelemente und den vlc-Player""" self.Sender = { "Radio Bob": "http://streams.radiobob.de/bob-live/mp3-192/mediaplayer", "Rock Antenne": "http://mp3channels.webradio.rockantenne.de/alternative" } self.instance = vlc.Instance('--input-repeat=-1', '--fullscreen') self.player = self.instance.media_player_new() self.Sender.keys() self.legend = tkinter.StringVar() self.legend.set("Senderwahl") self.choicebox = tkinter.OptionMenu( self, self.legend, *self.Sender.keys(), command=self.switchRadio ) self.choicebox.pack() self.butttonplay = tkinter.Button( self, text = "Play", command = self.player.play ) self.butttonplay.pack(side="right") self.buttnostop = tkinter.Button( self, text = "Pause", command = self.player.pause ) self.buttnostop.pack(side="right") def switchRadio(self, text): url = self.Sender[self.legend.get()] media = self.instance.media_new(url) media.get_mrl() self.player.set_media(media) print(url) def main(): root = tkinter.Tk() app = MyApp(root) app.mainloop() if __name__=="__main__": main()
Mit den doc-Strings habe ich mich zurückgehalten, da dieser Code nur zum Lernen dient. Werde für zukünftige Codes auf jeden Fall damit arbeiten, da es wirklich Sinn macht.
Nicht GLOBAL. Als Instanzvariablen in der Klasse. So wie zb auch self.lst.
Danke für die Hilfestellung.
Habe ich es richtig umgesetzt?
Falls euch noch etwas auffällt, bin ich für jede Verbesserung offen.
Ansonsten danke ich euch allen für die HIlfe
Grüße Dennis
-
-
createWidgets, Sender und switchRadio verstossen gegen PEP 8.
-
createWidgets, Sender und switchRadio verstossen gegen PEP 8.
+ Zeile 27 ist überflüssig
+ Play Button heißt Butttonplay
+ Stop Button heißt Buttnostop
-
Linus Oh man, jetzt habe ich glaub erst verstanden, was du mir sagen wolltest. Die Schreibweise war nicht richtig. Hab es verbessert.
Danke für den Hinweise und auch für die Gedult.
Python
Display More#!/usr/bin/env python3 import tkinter import vlc class MyApp(tkinter.Frame): def __init__(self, master): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): """Diese Funktion erstellt die Bedienelemente und den vlc-Player""" self.sender = { "Radio Bob": "http://streams.radiobob.de/bob-live/mp3-192/mediaplayer", "Rock Antenne": "http://mp3channels.webradio.rockantenne.de/alternative" } self.instance = vlc.Instance('--input-repeat=-1', '--fullscreen') self.player = self.instance.media_player_new() self.legend = tkinter.StringVar() self.legend.set("Senderwahl") self.choicebox = tkinter.OptionMenu( self, self.legend, *self.Sender.keys(), command=self.switch_radio ) self.choicebox.pack() self.butttonplay = tkinter.Button( self, text = "Play", command = self.player.play ) self.buttonplay.pack(side="right") self.buttonstop = tkinter.Button( self, text = "Pause", command = self.player.pause ) self.buttonstop.pack(side="right") def switch_radio(self, text): url = self.sender[self.legend.get()] media = self.instance.media_new(url) media.get_mrl() self.player.set_media(media) print(url) def main(): root = tkinter.Tk() app = MyApp(root) app.mainloop() if __name__=="__main__": main()
+ Play Button heißt Butttonplay
+ Stop Button heißt Buttnostop
Danke, habs angepasst.
Grüße und schönen Abend noch
Dennis
-
-
hallo, folgende formelle fehler:
#10, #16, #46: nur EINE leerzeile, nicht zwei
#35, #36, #40, #41: KEIN space vor und nach '='
#60: EIN space vor und nach '='
#61: danach eine leerzeile (als letzte zeile)
-
-
du benutzt doch pycharm, oder ?
dafür gibt es doch bestimmt ein modul/einstellung für 'pep8'. dann kannst du deinen code selbst auf formelle fehler prüfen
-
-
Perlchamp ja du hast recht, ich habe es gefunden.
Das hier ist die einzigste Meldung, die PyCharm noch anzeigt:
Falls jemand die Einstellung sucht:
Leerzeichenfehler werden allerdings nicht angezeigt, aber diese Einstellung finde ich auch noch.
So und hier noch der geänderte Code:
Python
Display More#!/usr/bin/env python3 import tkinter import vlc class MyApp(tkinter.Frame): def __init__(self, master): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): """Diese Funktion erstellt die Bedienelemente""" self.sender = { "Radio Bob": "http://streams.radiobob.de/bob-live/mp3-192/mediaplayer", "Rock Antenne": "http://mp3channels.webradio.rockantenne.de/alternative" } self.instance = vlc.Instance('--input-repeat=-1', '--fullscreen') self.player = self.instance.media_player_new() self.sender.keys() self.legend = tkinter.StringVar() self.legend.set("Senderwahl") self.choicebox = tkinter.OptionMenu( self, self.legend, *self.sender.keys(), command=self.switch_radio ) self.choicebox.pack() self.buttonplay = tkinter.Button( self, text="Play", command=self.player.play ) self.buttonplay.pack(side="right") self.buttonstop = tkinter.Button( self, text="Pause", command=self.player.pause ) self.buttonstop.pack(side="right") def switch_radio(self): url = self.sender[self.legend.get()] media = self.instance.media_new(url) media.get_mrl() self.player.set_media(media) print(url) def main(): root = tkinter.Tk() app = MyApp(root) app.mainloop() if __name__ == "__main__": main()
Danke und Grüße
Dennis
Edit: Das print(url) ist nur als Überprüfung für mich drin.
-
Ich weiß, ich wiederhole mich, aber: Black verwenden, dann hat man diese Probleme gar nicht.
-
-
-
Black ist kein "Plugin für Atom", Black ist ein Commandline-Tool: https://github.com/psf/black
Ausserdem ist es mir herzlich egal, ob dich das überzeugt oder nicht - die Empfehlung ging an den TE.
-
die Empfehlung ging an den TE.
Dankeschön, ich werde es mir anschauen.
Grüße Dennis