Bei Tinter start eine Initialisierungsroutine ausführen
Verfasst: Montag 3. März 2014, 11:25
Hallo,
ich habe jetzt schon Stunden im Internet und Onlinebüchern damit zugebracht herauszufinden wie man eine Initialisierung bei TKinter realisiert.
Mit Python habe ich noch recht wenig Erfahrung, ich komme mehr aus der Delphi und Java Welt.
Umgebung: Raspberry PI Rev. B, Python 2.7, Debian Wheezy, Projekt Heizungssteuerung
Programmauszug:
Im Prinzip geht es um diesen Teil:
Beim Programmstart möchte ich das die Variable progstatus den Wert "1" erhält, so das die IF-Anweisung durchlaufen wird. Wenn ich jedoch im Menu den Menupunkt "Anhalten" klicke, soll progstatus auf "0" gesetzt werden.
In Java ist das kein Problem, da ich die Var progstatus deklarieren, und auch gleichzeitig den Wert "1" übergeben kann.
Wie mache ich dies in Python, bzw, wie kann ich einen Programmteil nur einmalig beim Programmstart durchlaufen lassen, damit ich bestimmte Startzustände einstellen kann?
Vielen Dank
LG kaninchen
ich habe jetzt schon Stunden im Internet und Onlinebüchern damit zugebracht herauszufinden wie man eine Initialisierung bei TKinter realisiert.
Mit Python habe ich noch recht wenig Erfahrung, ich komme mehr aus der Delphi und Java Welt.
Umgebung: Raspberry PI Rev. B, Python 2.7, Debian Wheezy, Projekt Heizungssteuerung
Programmauszug:
Code: Alles auswählen
#!/usr/bin/python
import os
import time
#global progstatus
#global lprogstatus
from Tkinter import *
#Definition Menu Optionen
def statusanhalten():
progstatus = "0"
def statusfortsetzen():
progstatus = "1"
def heizstatuswinter():
heizstatus = "1"
def heizstatussommer():
heizstatus = "2"
def heizstatusmanuel():
heizstatus = "0"
def hkstatusauto():
hkstatus = "1"
def hkstatustag():
hkstatus = "2"
def hkstatusnacht():
hkstatus = "3"
def hkstatusaus():
hkstatus = "0"
def hkvlstatusz1():
hkvlstatus = "1"
def hkvlstatusz3():
hkvlstatus = "3"
def hkvlstatusz4():
hkvlstatus = "4"
def solpumpeein():
solpumpe = "1"
def solpumpeaus():
solpumpe = "0"
def solpumpeplus():
solpumpe = "+"
def solpumpeminus():
solpumpe = "-"
def solwtpumpeein():
solwtpumpe = "1"
def solwtpumpeaus():
solwtpumpe = "0"
def vtsolpufferladen():
vtsolpufferwws = "0"
def vtsolwwsladen():
vtsolpufferwws = "1"
def vtsolpufferz2():
vtsolpufferstatus = "2"
def vtsolpufferz3():
vtsolpufferstatus = "3"
def vtsolpufferz4():
vtsolpufferstatus = "4"
def wwsladepumpeein():
wwsladepumpe = "1"
def wwsladepumpeaus():
wwsladepumpe = "0"
def estabein():
estab = "1"
def estabaus():
estab = "0"
def kamimpumpeein():
kamimpumpe = "1"
def kamimpumpeaus():
kamimpumpe = "0"
def d20ppumpeein():
d20ppumpe = "1"
def d20ppumpeaus():
d20ppumpe = "0"
def vtkesselvlz2():
vtkesselvl = "2"
ausgabe = os.popen("snmpset -v1 -c private 192.168.0.51 .1.3.6.1.4.1.32111.1.1.2.2 i 1")
def vtkesselvlz3():
vtkesselvl = "3"
ausgabe = os.popen("snmpset -v1 -c private 192.168.0.51 .1.3.6.1.4.1.32111.1.1.2.2 i 0")
#Allgemeine Definitionen
#Hauptprogramm
def hauptprogramm():
canvas.itemconfig(lprogstatus, text="Progamm gestartet")
while (progstatus == "1"):
canvas.itemconfig(lprogstatus, text="Progamm gestartet")
time.sleep(2)
progstatus="1"
# canvas.itemconfig(lprogstatus, text="Progamm angehalten")
root = Tk()
#Menu
menubar = Menu(root)
statusmenu = Menu(menubar, tearoff=0)
statusmenu.add_command(label="Starten/Fortsetzen", command=statusfortsetzen)
statusmenu.add_command(label="Anhalten", command=statusanhalten)
statusmenu.add_separator()
statusmenu.add_command(label="Beenden", command=root.quit)
menubar.add_cascade(label="Programm", menu=statusmenu)
heizungmenu = Menu(menubar, tearoff=0)
heizungmenu.add_command(label="Winter", command=heizstatuswinter)
heizungmenu.add_command(label="Sommer", command=heizstatussommer)
heizungmenu.add_command(label="Manuel", command=heizstatusmanuel)
menubar.add_cascade(label="Heizung", menu=heizungmenu)
hkmenu = Menu(menubar, tearoff=0)
hkmenu.add_command(label="Automatik", command=hkstatusauto)
hkmenu.add_command(label="Tag", command=hkstatustag)
hkmenu.add_command(label="Nacht", command=hkstatusnacht)
hkmenu.add_separator()
hkmenu.add_command(label="Aus", command=hkstatusaus)
hkmenu.add_separator()
hkmenu.add_command(label="HK VL Z1", command=hkvlstatusz1)
hkmenu.add_command(label="HK VL Z3", command=hkvlstatusz3)
hkmenu.add_command(label="HK VL Z4", command=hkvlstatusz4)
menubar.add_cascade(label="Heizkreis", menu=hkmenu)
solarmenu = Menu(menubar, tearoff=0)
solarmenu.add_command(label="VRK Pumpe Ein", command=solpumpeein)
solarmenu.add_command(label="VRK Pumpe Aus", command=solpumpeaus)
solarmenu.add_command(label="VRK Pumpe+", command=solpumpeplus)
solarmenu.add_command(label="VRK Pumpe-", command=solpumpeminus)
solarmenu.add_separator()
solarmenu.add_command(label="WT Pumpe Ein", command=solwtpumpeein)
solarmenu.add_command(label="WT Pumpe Aus", command=solwtpumpeaus)
solarmenu.add_command(label="VT Puffer laden", command=vtsolpufferladen)
solarmenu.add_command(label="VT Puffer laden Z2", command=vtsolpufferz2)
solarmenu.add_command(label="VT Puffer laden Z3", command=vtsolpufferz3)
solarmenu.add_command(label="VT Puffer laden Z4", command=vtsolpufferz4)
solarmenu.add_separator()
solarmenu.add_command(label="VT WWS laden", command=vtsolwwsladen)
solarmenu.add_command(label="Ladepumpe WWS Puffer Ein", command=wwsladepumpeein)
solarmenu.add_command(label="Ladepumpe WWS Puffer Aus", command=wwsladepumpeaus)
solarmenu.add_separator()
solarmenu.add_command(label="WWS Heizstab Ein", command=estabein)
solarmenu.add_command(label="WWS Heizstab Aus", command=estabaus)
menubar.add_cascade(label="Solar/WWS", menu=solarmenu)
kaminmenu = Menu(menubar, tearoff=0)
kaminmenu.add_command(label="Pumpe Kamin Ein", command=kamimpumpeein)
kaminmenu.add_command(label="Pumpe Kamin Aus", command=kamimpumpeaus)
kaminmenu.add_separator()
kaminmenu.add_command(label="VT Kessel VL Z2", command=vtkesselvlz2)
kaminmenu.add_command(label="VT Kessel VL Z3", command=vtkesselvlz3)
menubar.add_cascade(label="Kaminofen", menu=kaminmenu)
d20pmenu = Menu(menubar, tearoff=0)
d20pmenu.add_command(label="Pumpe D20P Ein", command=d20ppumpeein)
d20pmenu.add_command(label="Pumpe D20P Aus", command=d20ppumpeaus)
d20pmenu.add_separator()
d20pmenu.add_command(label="VT Kessel VL Z2", command=vtkesselvlz2)
d20pmenu.add_command(label="VT Kessel VL Z3", command=vtkesselvlz3)
menubar.add_cascade(label="D20P", menu=d20pmenu)
root.config(menu=menubar)
# create the canvas, size in pixels
canvas = Canvas(width = 1000, height = 760)
# pack the canvas into a frame/form
canvas.pack(expand = YES, fill = BOTH)
# load the .gif image file
gif1 = PhotoImage(file = 'Hydraulik.gif')
# put gif image on canvas
# pic's upper left corner (NW) on the canvas is at x=50 y=10
canvas.create_image(0, 0, image = gif1, anchor = NW)
canvas.create_line(668,485,755,485,width=3,fill="blue")
canvas.create_line(668,470,668,486,width=3,fill="blue")
canvas.create_line(402,471,669,471,width=3,fill="blue")
canvas.create_line(400,396,400,609,width=3,fill="blue")
canvas.create_line(242,608,401,608,width=3,fill="blue")
canvas.create_line(400,420,469,420,width=3,fill="blue")
canvas.create_line(295,593,295,609,width=3,fill="blue")
canvas.create_line(10,608,89,608,width=3,fill="blue")
canvas.create_line(10,609,10,275,width=3,fill="blue")
canvas.create_line(10,276,17,276,width=3,fill="blue")
canvas.create_line(30,276,525,276,width=3,fill="blue")
canvas.create_line(524,276,524,323,width=3,fill="blue")
canvas.create_line(524,321,627,321,width=3,fill="blue")
canvas.create_line(675,321,688,321,width=3,fill="blue")
canvas.create_line(729,320,749,320,width=3,fill="blue")
canvas.create_line(244,529,354,529,width=3,fill="blue")
canvas.create_line(353,283,353,530,width=3,fill="blue")
canvas.create_line(353,267,353,273,width=3,fill="blue")
canvas.create_line(353,227,353,257,width=3,fill="blue")
canvas.create_line(353,191,353,217,width=3,fill="blue")
canvas.create_line(266,191,524,191,width=3,fill="blue")
canvas.create_line(266,118,266,191,width=3,fill="blue")
canvas.create_line(524,118,524,191,width=3,fill="blue")
canvas.create_line(253,118,267,118,width=3,fill="blue")
canvas.create_line(508,118,525,118,width=3,fill="blue")
canvas.create_line(483,118,492,118,width=3,fill="blue")
canvas.create_line(228,118,238,118,width=3,fill="blue")
#Ventil Solar WT/WWS
vwt1=canvas.create_line(787,319,863,319,width=3,fill="grey")
vwt2=canvas.create_line(863,320,863,428,width=3,fill="grey")
vwt3=canvas.create_line(863,413,939,413,width=3,fill="grey")
vwws1=canvas.create_line(959,413,977,413,width=3,fill="grey")
vwws2=canvas.create_line(977,413,977,543,width=3,fill="grey")
vwws3=canvas.create_line(977,543,813,543,width=3,fill="grey")
#Solarpumpean/aus
psolrl1=canvas.create_line(949,402,949,385,width=3,fill="grey")
psolrl2=canvas.create_line(949,343,949,321,width=3,fill="grey")
psolrl3=canvas.create_line(949,293,949,221,width=3,fill="grey")
psolvl1=canvas.create_line(783,56,783,125,width=3,fill="grey")
psolvl2=canvas.create_line(782,126,835,126,width=3,fill="grey")
psolvl3=canvas.create_line(834,126,834,514,width=3,fill="grey")
psolvl4=canvas.create_line(835,515,813,515,width=3,fill="grey")
psolvl5=canvas.create_line(834,263,786,263,width=3,fill="grey")
#Pumpe SolarWT
psolwt1=canvas.create_line(21,263,752,263,width=3,fill="grey")
psolwt2=canvas.create_line(21,263,21,481,width=3,fill="grey")
psolwt3=canvas.create_line(21,481,32,481,width=3,fill="grey")
psolwtz4_1=canvas.create_line(44,493,44,529,width=3,fill="grey")
psolwtz4_2=canvas.create_line(43,529,89,529,width=3,fill="grey")
psolwtz23_1=canvas.create_line(44,474,44,398,width=3,fill="grey")
psolwtz23_2=canvas.create_line(44,399,54,399,width=3,fill="grey")
psolwtz3_1=canvas.create_line(64,410,64,444,width=3,fill="grey")
psolwtz3_2=canvas.create_line(64,442,89,442,width=3,fill="grey")
psolwtz4_1=canvas.create_line(64,387,64,362,width=3,fill="grey")
psolwtz4_2=canvas.create_line(64,363,89,363,width=3,fill="grey")
#PumpeHK
phk1=canvas.create_line(460,385,469,385,width=3,fill="grey")
phk2=canvas.create_line(412,385,433,385,width=3,fill="grey")
phk3=canvas.create_line(374,385,389,385,width=3,fill="grey")
phk4=canvas.create_line(374,311,374,385,width=3,fill="grey")
phk5=canvas.create_line(178,312,394,312,width=3,fill="grey")
vhkvlz1=canvas.create_line(165,323,165,332,width=3,fill="grey")
vhkvlz34_1=canvas.create_line(165,302,165,291,width=3,fill="grey")
vhkvlz34_2=canvas.create_line(165,291,303,291,width=3,fill="grey")
vhkvlz34_3=canvas.create_line(302,291,302,423,width=3,fill="grey")
vhkvlz3_1=canvas.create_line(244,435,291,435,width=3,fill="grey")
vhkvlz4_1=canvas.create_line(314,435,324,435,width=3,fill="grey")
vhkvlz4_2=canvas.create_line(324,435,324,530,width=3,fill="grey")
#Kamin
d20prl1=canvas.create_line(188,118,206,118,width=3,fill="grey")
d20prl1=canvas.create_line(152,118,160,118,width=3,fill="grey")
if progstatus=="1" :
lprogstatus=canvas.create_text(0, 10, anchor=W, text="Status: gestartet")
else :
lprogstatus=canvas.create_text(0, 10, anchor=W, text="Status: angehalten")
#canvas.itemconfig(line1, fill="blue")
# run it ...
mainloop()
Code: Alles auswählen
if progstatus=="1" :
lprogstatus=canvas.create_text(0, 10, anchor=W, text="Status: gestartet")
else :
lprogstatus=canvas.create_text(0, 10, anchor=W, text="Status: angehalten")
In Java ist das kein Problem, da ich die Var progstatus deklarieren, und auch gleichzeitig den Wert "1" übergeben kann.
Wie mache ich dies in Python, bzw, wie kann ich einen Programmteil nur einmalig beim Programmstart durchlaufen lassen, damit ich bestimmte Startzustände einstellen kann?
Vielen Dank
LG kaninchen