Code: Alles auswählen
import tkinter as tk
from tkinter import *
def Button_action():
fenster = Tk()
fenster.geometry("650x350")
fenster.title("Auswahl")
# Ausgabe Der Gewünschten Informationen
my_label = Label(fenster, text="Wähle die Gewünschte Information aus.")
Mac_ausgabe_Label = Label(fenster, text=mac)
Status_ausgabe_Label = Label(fenster, text=status)
Ip_ausgabe_Label = Label(fenster, text=ip)
Name_ausgabe_Label = Label(fenster, text=name)
PosX_ausgabe_Label = Label(fenster, text=posx)
PosY_ausgabe_Label = Label(fenster, text=posy)
Farbe_ausgebe_Label = Label(fenster, text=farbe)
SwitchPort_ausgabe_Label = Label(fenster, text=switchPort)
#Button zum ändern der Werte
def Button_SwitchPort():
switchPort = eingabefeld_switchPort.get()
def Button_Farbe():
farbe = eingabefeld_farbe.get()
def Button_PosY():
posy = eingabefeld_posy.get()
def Button_PosX():
posx = eingabefeld_posx.get()
def Button_Name():
name = eingabefeld_name.get()
def Button_Ip():
ip = eingabefeld_ip.get()
def Button_Status():
status = eingabefeld_status.get()
def Button_Mac():
mac = eingabefeld_mac.get()
#Hier kann der Benutzer eine Eingabe machen
eingabefeld_mac = Entry(fenster, bd=5, width=40)
eingabefeld_status = Entry(fenster, bd=5, width=40)
eingabefeld_ip = Entry(fenster, bd=5, width=40)
eingabefeld_name = Entry(fenster, bd=5, width=40)
eingabefeld_posx = Entry(fenster, bd=5, width=40)
eingabefeld_posy = Entry(fenster, bd=5, width=40)
eingabefeld_farbe = Entry(fenster, bd=5, width=40)
eingabefeld_switchPort = Entry(fenster, bd=5, width=40)
#Platzzuweisungen/Größenzuweisungen
my_label.grid(row=0, column=2)
Mac_Button = Button(fenster, text="Mac-Adressen", width = '12', height = '1', command=Button_Mac)
Mac_Button.grid(row=1,column=1)
Mac_ausgabe_Label.grid(row=1, column=2)
eingabefeld_mac.grid(row=1, column=3)
Status_Button = Button(fenster, text="Status", width = '6', height = '1', command=Button_Status)
Status_Button.grid(row=2,column=1)
Status_ausgabe_Label.grid(row=2, column=2)
eingabefeld_status.grid(row=2, column=3)
Ip_Button = Button(fenster, text="Ip", width = '2', height = '1', command=Button_Ip)
Ip_Button.grid(row=3,column=1)
Ip_ausgabe_Label.grid(row=3, column=2)
eingabefeld_ip.grid(row=3, column=3)
Name_Button = Button(fenster, text="Name", width = '4', height = '1', command=Button_Name)
Name_Button.grid(row=4,column=1)
Name_ausgabe_Label.grid(row=4, column=2)
eingabefeld_name.grid(row=4, column=3)
Posx_Button = Button(fenster, text="PosX", width = '4', height = '1', command=Button_PosX)
Posx_Button.grid(row=5,column=1)
PosX_ausgabe_Label.grid(row=5, column=2)
eingabefeld_posx.grid(row=5, column=3)
Posy_Button = Button(fenster, text="PosY", width = '4', height = '1', command=Button_PosY)
Posy_Button.grid(row=6,column=1)
PosY_ausgabe_Label.grid(row=6, column=2)
eingabefeld_posy.grid(row=6, column=3)
Farbe_Button = Button(fenster, text="Farbe", width = '5', height = '1', command=Button_Farbe)
Farbe_Button.grid(row=7,column=1)
Farbe_ausgebe_Label.grid(row=7, column=2)
eingabefeld_farbe.grid(row=7, column=3)
SwitchPort_Button = Button(fenster, text="SwitchPort", width = '9', height = '1', command=Button_SwitchPort)
SwitchPort_Button.grid(row=8,column=1)
SwitchPort_ausgabe_Label.grid(row=8, column=2)
eingabefeld_switchPort.grid(row=8, column=3)
def mouse_button1(mouse,object):
"""Maus fasst das Grafik-Objekt"""
cv.drag_drop_flag = True
tags = cv.gettags(object)
if tags != ():
object = tags[0]
#~~ Hebt das selektierte Objekt über die anderen
cv.tag_raise(object,None)
#~~ Drag-Koordinaten
cv.mouse_x = mouse.x
cv.mouse_y = mouse.y
print(cv.mouse_x,cv.mouse_y)
def mouse_release1():
"""Maus lässt Grafik-Objekte fallen"""
cv.drag_drop_flag = False
def mouse_move(mouse,object):
"""Maus bewegt dich über das Grafil-Objekt"""
tags = cv.gettags(object)
if tags != ():
object = tags[0]
if cv.drag_drop_flag == True:
# Ermittle den Koordinaten-offset
xoff = mouse.x - cv.mouse_x
yoff = mouse.y - cv.mouse_y
# verschiebe das Grafik Objekt
cv.move(object,xoff,yoff)
# Aktuelle Koordinaten
cv.mouse_x = mouse.x
cv.mouse_y = mouse.y
def mouse_enter(event):
"""Maus bewegt sich in das grafische Objekt"""
cv.temp_cursor = cv['cursor']
cv['cursor'] = 'hand1'
def mouse_leave(event):
"""Maus bewegt sich aus dem Grafischen Objekt"""
cv['cursor'] = cv.temp_cursor
def event_bindings(object):
"""Binde Mausereignisse an das Grafik-Objekt"""
# Event für linke Maustaste
cv.tag_bind(object,"<Button-1>", lambda e,obj=object:mouse_button1(e,obj))
# Event für loslassen der linken Maustaste
cv.tag_bind(object,"<ButtonRelease 1>", lambda e, obj=object:mouse_release1())
# Event für Mausbewegung
cv.tag_bind(object,"<Motion>", lambda e, obj=object:mouse_move(e,obj))
# Maus bewegt sich ins Grafik-Objekt
cv.tag_bind(object,"<Enter>", lambda e:mouse_enter(e))
# Maus bewegt sich aus dem Grafik-Objekt
cv.tag_bind(object, "<Leave>", lambda e:mouse_leave(e))
def Button_rechteck():
fenster = Tk()
cv = Canvas(fenster,height=500, width=500,bd=0,relief='raised',bg='#ffffff')
cv.pack()
#Folgende Variablen werden dem cv.objekt angehängt
cv.drag_drop_flag = False
cv.mouse_x = None
cv.mouse_y = None
def Button_rechteck():
fenster.title("Rechteck")
canvas_width = 500
canvas_height = 500
colours = ("#476042", "yellow")
master = Tk()
w = Canvas(master,
width=canvas_width,
height=canvas_height)
w.pack()
posx1 = posx[:]
posy1 = posy[:]
for i in range(len(posx)):
posx[i] = posx[i] +100
for i in range(len(posy)):
posy[i] = posy[i] +100
# das rechteck und das drag and drop mit der maus
rechteck = w.create_rectangle(posx[0], posy[0], posx1[0], posy1[0], fill=colours)
event_bindings(rechteck)
for i in range(len(posx1)):
posx1[i] = posx1[i] +50
for i in range(len(posy1)):
posy1[i] = posy1[i] +50
#die MAC Adresse die aus der liste angezeigt wird / verbinden mit dem rechteck
inhalt_a = w.create_text(posx1[0], posy1[0], text=mac[0])
#cv.addtag_withtag('rechteck', rechteck)
#cv.addtag_withtag('rechteck', inhalt_a)
for i in range(len(posx1)):
posx1[i] = posx1[i] -10
for i in range(len(posy1)):
posy1[i] = posy1[i] -10
#der status der mir angezeigt wird / verbinden mit dem rechteck
inhalt_b = w.create_text(posx1[0], posy1[0], text=status[0])
#cv.addtag_withtag('rechteck', rechteck)
#cv.addtag_withtag('rechteck', inhalt_b)
#Das erste Fenster dass sich öffnet
fenster = Tk()
fenster.geometry("1000x550")
fenster.title("Programm mit einem Menü")
#InfoText im Fenster
info_text = Label(fenster, text = "Ich habe ein Menü!\n\
Wenn du darauf Klickst geht ein Drop-Down-Menü auf.")
info_text.pack()
# Menüleiste erstellen
menuleiste = Menu(fenster)
#Menü Datei erstellen
datei_menu = Menu(menuleiste, tearoff=0)
datei_menu =Menu(menuleiste, tearoff=0)
# Beim Klick auf Datei sollen nun weitere Einträge erscheinen.
# Diese werden also zu "datei_menu" hinzugefügt.
datei_menu.add_command(label="Computer", command=Button_action)
datei_menu.add_separator() # Fügt eine Trennlinie hinzu
datei_menu.add_command(label="Rechteck", command=Button_rechteck)
datei_menu.add_separator()
datei_menu.add_command(label="Exit", command=fenster.quit)
# Nun fügen wir die Menüs (Datei) der Menüleiste
#als "Drop-down-Menü" hinzu
menuleiste.add_cascade(label="Computer", menu=datei_menu)
# Die Menüleiste mit den Menüeinrägen noch dem Fenster übergeben und fertig.
fenster.config(menu=menuleiste)
class Computer:
def __init__(self, mac, status, ip, name, posx, posy, farbe, switchPort):
self.__mac = mac
self.__status = status
self.__ip = ip
self.__name = name
self.__posx = posx
self.__posy = posy
self.__farbe = farbe
self.__switchPort = switchPort
def __GetMac(self):
return self.__mac
def __SetMac(self, mac):
self.__mac = mac
def __GetStatus(self):
return self.__status
def __SetStatus(self, status):
self.__status = status
def __GetIp(self):
return self.__ip
def __SetIp(self, ip):
self.__ip = ip
def __GetName(self):
return self.__name
def __SetName(selfname):
self.__name = name
def __GetPosX(self):
return self.__posx
def __SetPosX(self, posx):
self.__posx = posx
def __GetPosY(self):
return self.__posy
def __SetPosY(self, posy):
self.__posy = posy
def __GetFarbe(self):
return self.__farbe
def __SetFarbe(self, farbe):
self.__farbe = farbe
def __GetSwitchPort(self):
return self.__switchPort
def __SetSwitchPort(self, switchPort):
self.__switchPort = switchPort
mac = property(__GetMac, __SetMac)
status = property(__GetStatus, __SetStatus)
ip = property(__GetIp, __SetIp)
name = property(__GetName, __SetName)
posx = property(__GetPosX, __SetPosX)
posy = property(__GetPosY, __SetPosY)
farbe = property(__GetFarbe, __SetFarbe)
switchPort = property(__GetSwitchPort, __SetSwitchPort)
if __name__ == "__main__":
mac = ['23:24:34:2E:22:1A', 'aa:bb:cc:dd:ee:ff']
status = ['ok', 'beschädigt']
ip = ['192.168.3.6', '192.168.9.9']
name = ['Koala', 'Kaninchen', 'Igel', 'Maus', 'Elefant']
posx = [30, 66]
posy = [50, 99]
farbe = ['Grün', 'Silber']
switchPort = ['der da daneben', 'der da drüben']
cv = Canvas(fenster,height=500, width=500,bd=0,relief='raised',bg='#ffffff')
fenster.mainloop()