Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 22:27

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kleine Python Frage

Discussion on Kleine Python Frage within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Kleine Python Frage

Moin,
Bin dabei für mein rPi ein kleines Python Script für ein Internetradio zu schreiben.
Nun da ich python n00b bin und alles was ich heute Nacht geschrieben habe durch rumprobieren zustande bringen konnte benötige ich nun Hilfe.
Mein Code:
Code:
from tkinter import *
import os

main = Tk()
main.title("Internetradio")
main.geometry("400x600")
image1=PhotoImage(file="hr3.png")
image2=PhotoImage(file="youfm.png")
image3=PhotoImage(file="pause.png")
image4=PhotoImage(file="plus.png")
image5=PhotoImage(file="minus.png")


a=Button(main,image=image1,command= os.system("taskkill /pid 4744"))
b=Button(main,image=image2)
c=Button(main,image=image3)
d=Button(main,image=image4)
e=Button(main,image=image5)

a.pack()
b.pack()
c.pack()
d.pack()
e.pack()

mainloop()
Wenn ich das Script ausführe wird direkt der Prozess beendet OHNE das ich auf den Button drücke. Wieso? Ich verstehe das nicht. Vielleicht ist es auch einfach zu spät^^

MfG
Benjihz is offline  
Old 09/04/2015, 19:09   #2
 
xXKonaXx's Avatar
 
elite*gold: 20
Join Date: Nov 2010
Posts: 552
Received Thanks: 350
Du musst die Bilddateien ins .gif Format konvertieren.
Öffne die Bilddatei mit z.B. mspaint und speichere sie einfach als .gif ab.
Dann sollte es laufen.
xXKonaXx is offline  
Old 09/04/2015, 19:39   #3
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 572
Quote:
Originally Posted by xXKonaXx View Post
Du musst die Bilddateien ins .gif Format konvertieren.
Öffne die Bilddatei mit z.B. mspaint und speichere sie einfach als .gif ab.
Dann sollte es laufen.
Ein Bild in gif zu converten ist nie der richtige weg, wenn überhaupt ein sehr schlechter workauround.

Ring Ring, die 2000er rufen an sie wollen ihr veraltetes unnützes bildformat wieder haben
warfley is offline  
Old 09/05/2015, 02:14   #4
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Naja was hat das Format des Bildes damit Zutun das der Prozess direkt beendet wird wenn ich das Programm starte.
Benjihz is offline  
Old 09/05/2015, 19:48   #5
 
xXKonaXx's Avatar
 
elite*gold: 20
Join Date: Nov 2010
Posts: 552
Received Thanks: 350
Quote:
Originally Posted by warfley View Post
Ein Bild in gif zu converten ist nie der richtige weg, wenn überhaupt ein sehr schlechter workauround.

Die Klasse PhotoImage unterstützt meines Wissens nur das .gif Format.

Quote:
Originally Posted by Benjihz View Post
Naja was hat das Format des Bildes damit Zutun das der Prozess direkt beendet wird wenn ich das Programm starte.
Versuch es einfach.
xXKonaXx is offline  
Old 09/05/2015, 22:30   #6
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by xXKonaXx View Post
Die Klasse PhotoImage unterstützt meines Wissens nur das .gif Format.



Versuch es einfach.
Danke für den Vorschlag, funktioniert leider dennoch nicht.
Der Prozess wird wieder direkt beendet ohne das der Button gedrückt wird.

Code:
from tkinter import *
import os

main = Tk()
main.title("Internetradio")
main.geometry("400x600")
image1=PhotoImage(file="hr3.gif")
image2=PhotoImage(file="youfm.png")
image3=PhotoImage(file="pause.png")
image4=PhotoImage(file="plus.png")
image5=PhotoImage(file="minus.png")


a=Button(main,image=image1,command= os.system("taskkill /pid 4644"))
b=Button(main,image=image2)
c=Button(main,image=image3)
d=Button(main,image=image4)
e=Button(main,image=image5)

a.pack()
b.pack()
c.pack()
d.pack()
e.pack()

mainloop()
Benjihz is offline  
Old 09/05/2015, 23:31   #7
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Ein bisschen Eigeninitiative ist beim Programmieren immer hilfreich.

So nun zu ner Antwort:
Als erstes googelt man nach dem Problem ich hab mal "tkinter photoimage png" eingegeben. Das erste Ergebnis.


Also .png wird nicht unterstützt. Also verwenden wir KEINE .png files.
Quote:
image2=PhotoImage(file="youfm.png") <-- PNG
image3=PhotoImage(file="pause.png") <-- PNG
image4=PhotoImage(file="plus.png") <-- PNG
image5=PhotoImage(file="minus.png") <-- PNG
Sobald das Programm zu einer dieser Zeilen kommt wird vermutlich ne Exception
geworfen, und das Programm wird geschlossen.

Und nochwas:
Quote:
"taskkill /pid 4644"
Viel Glück damit, die Prozess ID ist nicht fest vergeben, und kann sich ändern.
Der Prozess mit der ID 4644 könnte alles sein. Vielleicht beendet es dein Programm
vielleicht löst es aber auch den 3ten Weltkrieg aus, weiß man nicht.

Quote:
"taskkill /IM """Prozessname.exe""" "
Hiermit sollte das Ergebnis etwas konstanter sein.
.SkyneT. is offline  
Thanks
1 User
Old 09/05/2015, 23:49   #8
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by .SkyneT. View Post
Ein bisschen Eigeninitiative ist beim Programmieren immer hilfreich.

So nun zu ner Antwort:
Als erstes googelt man nach dem Problem ich hab mal "tkinter photoimage png" eingegeben. Das erste Ergebnis.


Also .png wird nicht unterstützt. Also verwenden wir KEINE .png files.

Sobald das Programm zu einer dieser Zeilen kommt wird vermutlich ne Exception
geworfen, und das Programm wird geschlossen.

Und nochwas:

Viel Glück damit, die Prozess ID ist nicht fest vergeben, und kann sich ändern.
Der Prozess mit der ID 4644 könnte alles sein. Vielleicht beendet es dein Programm
vielleicht löst es aber auch den 3ten Weltkrieg aus, weiß man nicht.


Hiermit sollte das Ergebnis etwas konstanter sein.
Hallo, vielen dank für deine Mühe.
Ich hab jetzt alle Bilder ins GIF Format konvertiert. Das die PID variabel ist ist mir klar.
Leider tritt immernoch das selbe Problem auf. Der Befehl zum schließen des Prozesses wird schon beim Start des Programmes ausgeführt und nicht erst wenn der Button gedrückt wird.

Code:
from tkinter import *
import os

main = Tk()
main.title("Internetradio")
main.geometry("400x600")
image1=PhotoImage(file="hr3.gif")
image2=PhotoImage(file="youfm.gif")
image3=PhotoImage(file="pause.gif")
image4=PhotoImage(file="plus.gif")
image5=PhotoImage(file="minus.gif")


a=Button(main,image=image1,command= os.system("taskkill /IM chrome.exe"))
b=Button(main,image=image2)
c=Button(main,image=image3)
d=Button(main,image=image4)
e=Button(main,image=image5)

a.pack()
b.pack()
c.pack()
d.pack()
e.pack()

mainloop()
Benjihz is offline  
Old 09/06/2015, 02:30   #9
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Oh, hab jetzt erst dein eigentliches Problem richtig verstanden ^^
Hier z.B
Quote:
Naja was hat das Format des Bildes damit Zutun das der Prozess direkt beendet wird wenn ich das Programm starte.
dachte ich aus irgendeinem Grund das dieser "Prozess" dein Programm ist.


Naja, dann mal zu dem eigentlichen Problem:

Fehler liegt hier:
Quote:
command= os.system("taskkill /IM chrome.exe")
müsste so aussehen:
Code:
def killchrome():
    os.system("taskkill /F /IM chrome.exe")

a=Button(main,image=image1,command=killchrome)
.SkyneT. is offline  
Thanks
1 User
Old 09/06/2015, 22:52   #10
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by .SkyneT. View Post
Oh, hab jetzt erst dein eigentliches Problem richtig verstanden ^^
Hier z.B

dachte ich aus irgendeinem Grund das dieser "Prozess" dein Programm ist.


Naja, dann mal zu dem eigentlichen Problem:

Fehler liegt hier:

müsste so aussehen:
Code:
def killchrome():
    os.system("taskkill /F /IM chrome.exe")

a=Button(main,image=image1,command=killchrome)
Hat soweit alles funktioniert, danke
Ich möchte das ganze jetzt auch unter Linux(Raspbian) ausführen. Unter Windows läuft das Script perfekt, nur unter Raspian leider nicht.
Die Fehlermeldung aus der Python-Shell:


Ist es evtl möglich das tkinter nachinstalliert werden muss?

MfG

Code:
from tkinter import *
import os

main = Tk()
main.title("Internetradio")
main.geometry("400x600")
image1=PhotoImage(file="hr3.gif")
image2=PhotoImage(file="youfm.gif")
image3=PhotoImage(file="pause.gif")
image4=PhotoImage(file="plus.gif")
image5=PhotoImage(file="minus.gif")

def playhrdrei():
    os.system("mpc play 1")

def playyoufm():
    os.system("mpc play 2")

def stop():
    os.system("mpc stop")
a=Button(main,image=image1,command=playhrdrei)
b=Button(main,image=image2,command=playyoufm)
c=Button(main,image=image3,command=stop)
d=Button(main,image=image4)
e=Button(main,image=image5)

a.pack()
b.pack()
c.pack()
d.pack()
e.pack()

mainloop()
Benjihz is offline  
Old 09/07/2015, 13:06   #11
 
xXKonaXx's Avatar
 
elite*gold: 20
Join Date: Nov 2010
Posts: 552
Received Thanks: 350
Bitte die nutzen, diese unterstützt fast alle Bildformate und du sparst dir das ganze hin und her konvertieren.

Beispiel für dein Programm:
Code:
from PIL import Image, ImageTk

image = Image.open("pause.jpg")
pause_image = ImageTk.PhotoImage(image)
e = Button(main,image=pause_image)
xXKonaXx is offline  
Thanks
1 User
Old 09/07/2015, 16:59   #12
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Vielen Dank für eure Hilfe. Läuft jetzt
Benjihz is offline  
Reply


Similar Threads Similar Threads
[Suche] Jemand der mir 2 kleine Python-Funktionen in VB.net/C# übersetzt [Biete] eg
02/13/2015 - elite*gold Trading - 2 Replies
Hey, Topic regelt, macht mir Gebote. Auch Paypal als Zahlung möglich! Geht um folgende 2 Funktionen: @classmethod def _scramble_authorization_code(cls, data, key, reverse): result = "" reverse += 1
[Suche] Jemand der mir 2 kleine Python-Funktionen in VB.net/C# übersetzt [Biete] eg
02/12/2015 - Coders Trading - 0 Replies
Hey, Topic regelt, macht mir Gebote. Auch Paypal als Zahlung möglich! Geht um folgende 2 Funktionen: @classmethod def _scramble_authorization_code(cls, data, key, reverse): result = "" reverse += 1
Kleine Python Frage
03/07/2014 - Metin2 Private Server - 1 Replies
Hallo, Ich möchte das Premium system einbauen und habe in der Game.py das stehen.: import dbg if app.GetGlobalTimeStamp() - self.lastupdate < 0: self.lastupdate = app.GetGlobalTimeStamp() if app.GetGlobalTimeStamp() - self.lastupdatee < 0: self.lastupdatee = app.GetGlobalTimeStamp() if gamemasta.find("")!=-1:
[Python] kleine Frage
01/08/2013 - General Coding - 11 Replies
Ich habe angefangen mit Python, wenn ich mir jetzt aus Test Gründen eine Passwort abfrage erstelle (If/Else) funktioniert diese aber nur wenn: pw = input() if pw == "9999": print("Das Passwort ist richtig") else: print("Das Passwort ist falsch")
[RELEASE]2 Kleine Python Sachen
02/04/2012 - Metin2 PServer Guides & Strategies - 50 Replies
Heyho, Ich hatte gerade mal LW und da habe ich mir gedacht mache ich mal zwei Sachen aus meinem Client Pub vllt kann der eine oder andere damit was anfangen :) Es sind kleine Sachen als nicht rummeckern . Haters ALT+F4 ! So die Erste Sache wäre der ändernde Fenstername bei jedem Start. Dazu Entpackt die Root.eix/epk und öffnet die locale.py



All times are GMT +1. The time now is 22:27.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.