(Sep-24-2019, 05:22 PM)Larz60+ Wrote: [ -> ]post entire code so it can be run
Here's the entire code:
import tkinter as tk
from tkinter import ttk
import subprocess
import time
LARGE_FONT= ("Verdana", 12)
BOLD_FONT= ("arial", 10, "bold")
class MainClass(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
self.geometry("1000x700+300+60")
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne, PageTwo, PageThree, PageFour, PageFourSubOne, PageFive, PageSix):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text="Hovedmeny", font=("arial", 20), fg="Blue")
label.pack(pady=10,padx=10)
def test():
subprocess.call("autoguitest2.py", shell=True)
#input('1: press enter to continue')
def kopiere_kontaktperson():
subprocess.call("contact_astea_to_so.py", shell=True)
controller.show_frame(StartPage)
style = ttk.Style()
style.configure("co2_knapp.TButton", font=("arial", 14), width=60, height=2, background="lightgrey")
co2_knapp = ttk.Button(self, text="Bytte av CO2", style="co2_knapp.TButton",
command=lambda: controller.show_frame(PageOne))
co2_knapp.pack(anchor="n")
style.configure("tom_knapp.TButton", font=("arial", 14), width=60, height=2,
background="lightgrey")
tom_knapp = ttk.Button(self, text="Tom for vann", style="tom_knapp.TButton",
command=lambda: controller.show_frame(PageFour))
tom_knapp.pack(anchor="n")
style.configure("varenummer.TButton", font=("arial", 14), width=60, height=2,
background="lightgrey")
style.configure("pyautogui.TButton", font=("arial", 14), width=60, height=2,
background="lightgrey")
style.configure("button2.TButton", font=("arial", 16), width=20, height=2,
background="lightgrey")
filterbytte = ttk.Button(self, text="Filterbytte", style="tom_knapp.TButton",
command=lambda: controller.show_frame(PageThree))
filterbytte.pack()
uvfeil = ttk.Button(self, text="UV-Feil", style ="tom_knapp.TButton",
command=lambda: controller.show_frame(PageFive))
uvfeil.pack()
lekkasje = ttk.Button(self, text="Lekkasje", style="tom_knapp.TButton",
command=lambda: controller.show_frame(PageSix))
lekkasje.pack()
button2 = ttk.Button(self, text="Ferdige tekster", style="button2.TButton",
command=lambda: controller.show_frame(PageTwo))
button2.pack(pady=20)
kopiere_kp = ttk.Button(self, text="KP fra Astea til SO - Ha Astea oppe i bakgrunnen og SO på andre skjermen", style="tom_knapp.TButton", command=kopiere_kontaktperson)
kopiere_kp.pack(pady=20)
testbase = ttk.Button(self, text="Test", command=test)
testbase.pack()
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="CO2", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style.configure("tilbake.TButton", width=20, height=2, font=('arial', 12, "bold"), bg="Blue")
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack()
label = tk.Label(self, text="OBS! Husk å ha ordren oppe i Astea før du trykker på 'Opprett ordre'", font=('arial', 15, "bold"), fg="Red")
label.pack(pady=10,padx=10)
def trekilo_ordre():
subprocess.call("CO2.py", shell=True)
controller.show_frame(StartPage)
style.configure("3kg.TButton", width=40, height=2, font=("arial", 12, "bold"))
trekilo = ttk.Button(self, text="Opprett ordre på CO2 3kg", style="3kg.TButton", command=trekilo_ordre)
#tikilo = ttk.Button(self, text="10kg", style="3kg.TButton", command=trekilo_ordre)
#sekshundre = ttk.Button(self, text="600g", style="3kg.TButton", command=trekilo_ordre)
trekilo.pack()
#tikilo.pack()
#sekshundre.pack()
#button2 = ttk.Button(self, text="Page Two",
#command=lambda: controller.show_frame(PageTwo))
#button2.pack()
class PageTwo(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Ferdig tekster", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style.configure("tilbake.TButton", width=20, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmeny", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack(pady=5)
from pynput.keyboard import Controller as KeyboardController
keyboard = KeyboardController()
def open_tekst_en():
time.sleep(2)
for char in "Jeg trenger serienummer på maskinen det gjelder. Dette finner du bak på maskinen under en strekkode. Ta gjerne et bilde om du er usikker.":
keyboard.press(char)
keyboard.release(char)
app.destroy()
def open_tekst_to():
time.sleep(2)
for char in "Jeg trenger serienummer på maskinen det gjelder. Dette finner du inni maskinen på en sølvgrå lapp. Ta gjerne et bilde om du er usikker. ":
keyboard.press(char)
keyboard.release(char)
app.destroy()
def open_tekst_tre():
time.sleep(2)
for char in "Flytting til ny lokasjon koster 3300,- + kjøring. Må vi legge rør ut over 5m kommer jobben og rørdeler i tillegg. Skal dere ha Aquasafe har vi en pakkepris på 5100,- + kjøring.\n\n\nVennligst bekreft prisen, så legger jeg inn en flytteordre og sender deg en ordrebekreftelse.":
keyboard.press(char)
keyboard.release(char)
app.destroy()
def open_tekst_fire():
time.sleep(2)
for char in "Denne maskinen har ingen serviceavtale, så service koster derfor 1990,- + kjøring + evt. deler som benyttes. Filter og UV er inkludert i prisen. \n \n \nVennligst bekreft prisen, så legger jeg inn en service med en gang.":
keyboard.press(char)
keyboard.release(char)
app.destroy()
tekst_en = ttk.Button(self, text="Vannmaskin - Spørre om serienummer", style="pyautoguibuttons.TButton", command=open_tekst_en)
tekst_en.pack(pady=2)
tekst_to = ttk.Button(self, text="Kaffemaskin - Spørre om serienummer", style="pyautoguibuttons.TButton", command=open_tekst_to)
tekst_to.pack(pady=2)
tekst_tre = ttk.Button(self, text="Flytting - Nytt bygg", style="pyautoguibuttons.TButton", command=open_tekst_tre)
tekst_tre.pack(pady=2)
tekst_fire = ttk.Button(self, text="Vannmaskin - Service til kr: 1990,- + kjøring", style="pyautoguibuttons.TButton", command=open_tekst_fire)
tekst_fire.pack(pady=2)
label = tk.Label(self, text="OBS! Trykk i vinduet teksten skal i etter du trykker på knappen, skrives etter 2 sek", font=('arial', 15, "bold"), fg="Red")
label.pack(pady=10,padx=10)
class PageThree(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Filterbytte", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style = ttk.Style()
style.configure("tilbake.TButton", width=20, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack()
def filterbytte_ordre():
subprocess.call("filterbytte.py", shell=True)
controller.show_frame(StartPage)
filterbytte = ttk.Button(self, text="Opprette ordre i Astea for filterbytte", style="tom_knapp.TButton", command=filterbytte_ordre)
filterbytte.pack(pady=10)
advarsel = tk.Label(self, text="OBS! Husk å ha ordren oppe i Astea før du trykker på 'Opprett ordre'", font=('arial', 15, "bold"), fg="Red")
advarsel.pack(pady=10,padx=10)
class PageFour(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Hovedmeny for PyautoGUI", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style = ttk.Style()
style.configure("tilbake.TButton", width=30, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack(pady=10)
def tom_uten():
subprocess.call("TOM.py", shell=True)
controller.show_frame(StartPage)
style.configure("pyautoguibuttons.TButton", width=60, height=2, font=('arial', 12, "bold"))
tom1 = ttk.Button(self, text="TOM UTEN ANTALL", style="pyautoguibuttons.TButton", command=tom_uten)
tom1.pack(pady=3)
tom2 = ttk.Button(self, text="TOM MED ANTALL", style="pyautoguibuttons.TButton", command=lambda: controller.show_frame(PageFourSubOne))
tom2.pack(pady=3)
class PageFourSubOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Definert antall TOM", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style = ttk.Style()
style.configure("tilbake.TButton", width=30, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack(pady=10)
import subprocess
def tom():
file = open("tom definert.txt", 'w')
file.write(str(tom_antall.get()))
file.close()
subprocess.call("autogui_tom.py", shell=True)
controller.show_frame(StartPage)
style.configure("pyautoguibuttons2.Tbutton", width=80, height=3, font=('arial', 15, "bold"))
tom_antall = tk.StringVar()
lable = tk.Label(self, text="Skriv inn antallet kunden ønsker under: ", font=LARGE_FONT)
lable.pack(pady=10,padx=10)
entry_box = tk.Entry(self, textvariable=tom_antall)
entry_box.pack()
tomdef = ttk.Button(self, text="OPPRETT ORDRE", style="pyautoguibuttons2.TButton", command=tom)
tomdef.pack(pady=10,padx=10)
label = tk.Label(self, text="OBS! Husk å ha ordren oppe i Astea før du trykker på Opprett ordre", font=('arial', 15, "bold"), fg="Red")
label.pack(pady=10,padx=10)
label2 = tk.Label(self, text="Programmet bytter selv til Astea, trykk på knappen og vent.", font=('arial', 15, "bold"), fg="Blue")
label2.pack(pady=10,padx=10)
class PageFive(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="UV-Feil", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style.configure("tilbake.TButton", width=30, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack(pady=10)
def uv_ordre_wl3():
subprocess.call("UV_Feil_WL3.py", shell=True)
controller.show_frame(StartPage)
def uv_ordre_wl4():
subprocess.call("UV_Feil_WL4.py", shell=True)
controller.show_frame(StartPage)
def uv_ordre_generell():
subprocess.call("UV_Feil.py", shell=True)
controller.show_frame(StartPage)
style.configure("pyautoguibuttons.TButton", width=60, height=2, font=('arial', 12, "bold"))
uv_wl3 = ttk.Button(self, text="Opprett ordre: Purification lyser ikke", style="pyautoguibuttons.TButton", command=uv_ordre_wl3)
uv_wl3.pack(pady=2)
uv_wl4 = ttk.Button(self, text="Opprett ordre: UV-Feil i display WL4", style="pyautoguibuttons.TButton", command=uv_ordre_wl4)
uv_wl4.pack(pady=2)
uv_generell = ttk.Button(self, text="Opprett ordre: Generell UV-Feil", style="pyautoguibuttons.TButton", command=uv_ordre_generell)
uv_generell.pack(pady=2)
label = tk.Label(self, text="OBS! Husk å ha ordren oppe i Astea før du trykker på Opprett ordre", font=('arial', 15, "bold"), fg="Red")
label.pack(pady=10,padx=10)
class PageSix(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Lekkasje", font=LARGE_FONT)
label.pack(pady=10,padx=10)
style = ttk.Style()
style.configure("tilbake.TButton", width=30, height=2, font=('arial', 12, "bold"))
hovedmeny = ttk.Button(self, text="Tilbake til hovedmenyen", style="tilbake.TButton",
command=lambda: controller.show_frame(StartPage))
hovedmeny.pack(pady=10)
def lekkasje1():
subprocess.call("lekkasje.py", shell=True)
controller.show_frame(StartPage)
def lekkasje2():
subprocess.call("lekkasje2.py", shell=True)
controller.show_frame(StartPage)
style.configure("pyautoguibuttons.TButton", width=60, height=2, font=('arial', 12, "bold"))
lekkasje_plain = ttk.Button(self, text="Opprett ordre: Lekkasje", style="pyautoguibuttons.TButton", command=lekkasje1)
lekkasje_plain.pack(pady=2)
lekkasje_inni = ttk.Button(self, text="Opprett ordre: Lekkasje inni/under", style="pyautoguibuttons.TButton", command=lekkasje2)
lekkasje_inni.pack(pady=2)
label = tk.Label(self, text="OBS! Husk å ha ordren oppe i Astea før du trykker på Opprett ordre", font=('arial', 15, "bold"), fg="Red")
label.pack(pady=10,padx=10)
app = MainClass()
app.mainloop()