Beim Tkinter mit Mausklick auf einen Plott klicken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ima
User
Beiträge: 2
Registriert: Dienstag 15. März 2022, 08:30

Hallo,
ich nutze Pycharm und hätte ein paar Fragen:

1.) Ist es möglich durch einen Klick auf ein Diagramm oder canvas (ein Plot in fenster oder durch befehl... nootbooks()) in ein anderer Reiter / Tab oder Fenster oder in ein anderes Diagramm zu gelangen?

2.) Wenn ja, wie würde so ein Python Code aussehen?

3.) Kann ich durch einen Klick auf einen Button in einen anderen Reiter oder Fenster gelangen?

4.) Wenn ja, wie würde so ein Python Code aussehen?

Kann mir jemand weiter Helfen, vielleicht gibt es auch schon etwas im Forum und ich habe es noch nicht gesehen?
Sirius3
User
Beiträge: 17761
Registriert: Sonntag 21. Oktober 2012, 17:20

PyCharm ist ja nur eine IDE.
Was hast Du? Ein eigentständiges Programm? Wenn ja, welches GUI-Rahmenwerk benutzt Du? Wie erzeugst Du die Fenster? Programmcode?

Und ja, man kann ein Programm schreiben, das mehrere Fenster hat, und dass man zwischen den Fenstern wechseln kann.
Ima
User
Beiträge: 2
Registriert: Dienstag 15. März 2022, 08:30

Hallo,
ich habe ein größeres Programm und arbeite mit tkinter. Ich kann irgendwie kein Bild einfügen, ohne Umwege. Unten sind Ausschnitte aus dem Plotten des Programmes und erzeugen der Fenster mit notebook.


Erzeugen der Fenster:

Code: Alles auswählen

in = tk.Tk()

# Den Fenstern einen Titel hinzufügen
win.title("Plotten")

#Tab
tabControl = ttk.Notebook(win)
tab1 = ttk.Frame(tabControl)  # Reiter erstellen
tabControl.add(tab1, text='Reiter1')

integrierter canvas Plot:

Code: Alles auswählen

my_canvas = Canvas(uniplotdia3a, width=100, height=100, bg="lightblue")
my_canvas.pack(pady=20)
x1 = 0   
y1 = 100   
x2 = 100
y2 = 10
my_canvas.create_line(x1, y2, x2, y1, fill="red")


Plots:

Code: Alles auswählen

def clickme3():
    sitzplaetze = 30
    vlvariablen = ['freie Plätze', 'Belegt']
    colors = ("green", "red")
    dataint = [10, 20]
    ##################
    # das Ganze / alle piecharts
    fig, ax = plt.subplots(3, 3)  # Anzahl an grafen eingeben

    # erster Graf
    ax[0][0].set_title(f'A 1 Plätze {sitzplaetze}')  # Titel des jew. Grafen
    # hier folgen die Eigenschaft des Tortendiagrams, wie Größe mittels radius, prozentzahl,
    # mit startangle die startposition, explode für
    # das Diagramm explodieren zu lassen und colors für die Farben zu zuweisen (bspw grün freie Plätze)
    ax[0][0].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # zweiter graf
    ax[0][1].set_title(f'A 2 Plätze {sitzplaetze}')
    ax[0][1].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # dritter graf
    ax[0][2].set_title(f'A 3 Plätze {sitzplaetze}')
    ax[0][2].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # viert. graf
    ax[1][0].set_title(f'B 1 Plätze {sitzplaetze}')
    ax[1][0].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # fünfter graf
    ax[1][1].set_title(f'B 2 Plätze {sitzplaetze}')
    ax[1][1].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # sechs. graf
    ax[1][2].set_title(f'B 3 Plätze {sitzplaetze}')
    ax[1][2].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # sie. graf
    ax[2][0].set_title(f'C 1 Plätze {sitzplaetze}')
    ax[2][0].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # acht. graf
    ax[2][1].set_title(f'C 2 Plätze {sitzplaetze}')
    ax[2][1].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=True, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # neunt. graf
    ax[2][2].set_title(f'C 3 Plätze {sitzplaetze}')
    ax[2][2].pie(dataint, radius=0.8, labels=vlvariablen, autopct='%.0f%%', shadow=False, startangle=90,
                 explode=(0, 0.1), colors=colors)

    # Ausgabe##############################
    fig.set_facecolor('lightgrey')  # Farbe für den Hintergrund
    plt.show()  # Aufrufen der Plots

# das Plotten aller Tortendiagramme; Ausführen bei Knopf druck
action3 = ttk.Button(uniplotdia3, text="Plotten!", command=clickme3)
action3.grid(column=0, row=0)
Antworten