tkinter button fehlermeldung (keine Standart glaube ich)

Fragen zu Tkinter.
rennmaus
User
Beiträge: 172
Registriert: Dienstag 4. August 2020, 10:24

Dienstag 12. Januar 2021, 17:24

Hallo,
Hier ersteinmal mein Code:

Code: Alles auswählen

def convert():
    from PIL import Image
    import os, sys, tkinter
    from tkinter import filedialog, messagebox, ttk
    root = tkinter.Tk()
    input = tkinter.filedialog.askopenfilenames(parent=root, title="Dateien auswählen")

    labelTop = tkinter.Label(root,
                        text="Wähle die Dateiendung")
    labelTop.grid(column=0, row=0)

    comboExample = ttk.Combobox(root,
                                values=[
                                    ".jpg",
                                    ".png",
                                    ".gif",
                                    ".psd"])
    comboExample.grid(column=0, row=1)
    comboExample.current(1)
    print(comboExample.current())
    def conv():
        for file in root.tk.splitlist(input):
            im = Image.open(str(input))
            f, e=os.path.splitext(input)
            output = f + ".gif"
            if input != output:
                im.save(output)
    tkinter.Button(root, text="convert", command=conv).pack()
    root.mainloop()
Wenn ich bei meinem Button das .pack() hin setzte, kommt folgende Fehlermeldung:

Code: Alles auswählen

_tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by grid
Wenn ich das .pack() weglasse, kommt keine Fehlermeldung, der Button wird mir aber auch nicht angezeigt. Woran liegt das?

Mfg
Christian
__deets__
User
Beiträge: 9120
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 12. Januar 2021, 17:33

Die Meldung ist doch sehr deutlich: du versuchst, zwei unterschiedliche layouting-Verfahren (pack & grid) zu mischen. Das geht eben nicht.
rennmaus
User
Beiträge: 172
Registriert: Dienstag 4. August 2020, 10:24

Dienstag 12. Januar 2021, 17:47

Habe es jetzt geschafft, mich haben nur die Sklaven (slaves) irritiert... Danke!
Benutzeravatar
__blackjack__
User
Beiträge: 7817
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 12. Januar 2021, 19:18

Oje, bei den Python-Entwicklern tummeln sich ja auch so ”woke” SJWs rum — mal sehen wann `tkinter` aus der Standardbibliothek fliegt wegen der `master`/`slave`-Nomenklatur. 🤣
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
__deets__
User
Beiträge: 9120
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 12. Januar 2021, 20:03

Wir haben das bei unserer Software gemacht, und dafuer eine ganze Reihe sehr bewegender, positiver Reaktionen aus der Community erhalten. Ich bin kein Nachfahre amerikanischer Sklaven, aber wenn ich welche durch einen fuer mich so voellig Konsequenz-freien Schritt gluecklich machen kann, dann mache ich das.
Benutzeravatar
__blackjack__
User
Beiträge: 7817
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mittwoch 13. Januar 2021, 01:06

Ich denke nicht das `master` in `tkinter` zu ändern so konsequenzfrei wäre. Über die Änderung würden sicher so einige Programme stolpern die das benutzen.
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
Benutzeravatar
DeaD_EyE
User
Beiträge: 562
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Mittwoch 13. Januar 2021, 11:48

Standard, nicht Standart.

Google mal nach Standarte.

Wir essen jetzt, Opa.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
rennmaus
User
Beiträge: 172
Registriert: Dienstag 4. August 2020, 10:24

Mittwoch 13. Januar 2021, 12:06

Tut mir leid.
Ps: Ich habe keine Enkel :)
Benutzeravatar
DeaD_EyE
User
Beiträge: 562
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Mittwoch 13. Januar 2021, 15:10

Ps: Ich habe keine Enkel
Das war eine Anspielung darauf, dass ein Komma das Leben retten kann.

Wir essen jetzt Opa. == Wir essen Opa auf.
Wir essen jetzt, Opa. == Wir möchten, dass Opa mit dem Essen anfängt.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
rennmaus
User
Beiträge: 172
Registriert: Dienstag 4. August 2020, 10:24

Mittwoch 13. Januar 2021, 15:55

Oh mann, was ist heute mit mir los?
__deets__
User
Beiträge: 9120
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 13. Januar 2021, 17:41

__blackjack__ hat geschrieben:
Mittwoch 13. Januar 2021, 01:06
Ich denke nicht das `master` in `tkinter` zu ändern so konsequenzfrei wäre. Über die Änderung würden sicher so einige Programme stolpern die das benutzen.
Sicher. Genauso wie über die Änderungen die eine Angleichung der Namenskonventionen an PEP8. Nichts an denen verbessert objektiv den Code. Denn der läuft genauso ab. Es gibt aber eine subjektive Bewertung der Wichtigkeit einer solchen Maßnahme. Und der wird ja auch stattgegeben. Was macht den Wunsch des einen, konsistente Benamung zu bekommen, und den Wunsch des anderen, nicht an seine Familiengeschichte erinnert zu werden, so anders? Ich zB empfinde sowas als ziemlich überflüssig. Bezeichne meine lieben Kollegen, die da starke Gefühle haben, aber auch nicht als CodingConventionWarriors ;)
Benutzeravatar
__blackjack__
User
Beiträge: 7817
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mittwoch 13. Januar 2021, 23:52

@__deets__: Erst einmal stimmt das nicht ganz, denn bei den Namenskonventionen geht es auch darum Informationen zu kodieren, zum Beispiel was eine Konstante und was eine Klasse ist. Und eine einheitliche Schreibweise vereinfacht es wenn man weiss das etwas "foo bar something" heisst, dass man nicht überlegen muss ob das nun `fooBarSomething`, `Foo_Bar_Something`, oder sonstwie geschrieben wird. Das vereinfacht schreiben und lesen des Quelltextes objektiv. Das ist ein Problem was alle haben.

Über Master/Slave regen sich viele SWJs auf die das gar nicht betrifft, weil sie sich so gerne aufregen, und sich gut fühlen wollen, und das möglichst billig, ohne wirklich etwas tun zu müssen. Und die Betroffenen? Wer ist denn das? Und welches tatsächlich, reale Problem haben die, welches durch eine Umbenennung gelöst wird? Welche realen Probleme haben die dagegen, die man wirklich mal dringend lösen sollte‽
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
__deets__
User
Beiträge: 9120
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 14. Januar 2021, 00:33

Ich habe nicht gesagt, dass es komplett wertlos ist, sich um konsistente Benamung zu bemühen. Sondern das es in keinem Verhältnis zu den dadurch entstehenden Kosten von brechendem Code steht. Das war doch dein Argument, warum man das nicht einfach machen kann, master & slave zu ändern. Kann man aber bei anderen Dinge durchaus.

Und da sind wir ja noch nicht mal bei den ganz heißen Themen Curly Braces - hinter oder unter statements, und eingerückt, ja, nein, ein bisschen.

Allgemein gesagt: viele der Dinge die wir so mit Code anstellen sind nicht von strengen Notwendigkeiten getrieben. Sondern durchaus auch einfach persönlichen Vorlieben, der Lust auf Neues, und Hypes.

Und auch wenn deine Kritik an performativen Allyship (mir fällt da gerade kein gutes deutsches Wort ein) durchaus berechtigt ist - die Behauptung, das hier wäre nur ein Auswuchs davon, ist schlicht falsch. Davon zeugen eben die Bezeugungen von Mitgliedern aus den betroffenen Communities. Die denke ich mir ja nicht aus. Die landen in meinem Postfach.

Ist das jetzt das wichtigste Ding? Nein. Aber eben auch nicht egal.

Ich persönlich jedenfalls unternehme den Versuch, diese Begriffe nach Möglichkeit zu vermeiden. Was bei meiner dieser Tage hardwarnahen Tätigkeit mit SPI und I2C durchaus Gelegenheiten und Tücken hat.
Benutzeravatar
__blackjack__
User
Beiträge: 7817
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Donnerstag 14. Januar 2021, 04:25

@__deets__: Curly braces sind in Python weniger ein Problem und das hinkt auch ein bisschen weil sich das in aller Regel vollautomatisiert umformatieren lässt. Wenn es sein muss auch in beide Richtungen, also man checkt was aus, findet das gaaanz furchtbar, formatiert es in die einzig vernünftige Variante um, und arbeitet damit. Und bevor man etwas comitted formatiert man es dann wieder für die Leute um die nicht mit der einzig wahren Setzung von geschweiften Klammern vertraut sind. 😉

Wie repräsentativ ist denn das was in Deinem Postfach landet? Und was genau ist denn das Problem was sie dadurch gelöst sehen? „Meine Ururgrosseltern waren Sklaven und ich werde immer ganz traurig wenn ich die Worte »Master« und »Slave« lese.“?
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
rennmaus
User
Beiträge: 172
Registriert: Dienstag 4. August 2020, 10:24

Donnerstag 14. Januar 2021, 09:24

Wie kann ich eine Datei in eine exe Konvertieren, sodass die imports mitgeliefert werden? Ich habe da nämlich welche wie PILLOW und pikepdf oder pypdf2. tkinter, os, sys werden ja standartmäßig mitgeliefert oder?

Mfg
Christian
Antworten