Unterschied im Verhalten des transparenten Frames mit tkinter im Pyinstaller [Python]

Zuvor habe ich in Erstellen eines Rahmens mit transparentem Hintergrund mit tkinter [Python] das Erstellen eines Rahmens mit transparentem Hintergrund vorgestellt. Dieser transparente Rahmen, jedoch mit $ python hoge.py (im Folgenden als $ python bezeichnet) Ich werde den Unterschied im Verhalten beim Ausführen der exe-Datei mit $ pyinstaller hoge.py --onefile (im Folgenden als $ pyinstaller bezeichnet) einführen.

Umgebung

Windows10-64bit Python3.7 Pyinstaller 3.6

Was ist Pyinstaller?

Eine Bibliothek, mit der Sie eine exe-Datei für Windows erstellen können, indem Sie einfach einen einfachen Befehl ausführen.

$pip install pyinstaller

Kann mit installiert werden. Sie müssen jedoch auf der offiziellen Website überprüfen, ob sie der von Ihnen verwendeten Python-Version entspricht. Ich habe versucht, es mit Python 3.8 an einem bestimmten Tag im März 2020 auszuführen, aber es wurde nicht unterstützt, sodass ich die exe-Datei nicht erfolgreich ausgeben konnte. Eine exe-Datei wird mit $ pyinstaller hoge.py erstellt. Wenn Sie jedoch die Option --onefile hinzufügen, wird sie zu einer exe-Datei zusammengefasst, was praktisch ist.

Unterschied im Verhalten

(Hier bezieht sich "Klicken" auf alle Links-, Mittel- und Rechtsklicks, sofern nicht anders angegeben.) Grundsätzlich sieht es genauso aus, aber wenn Sie $ python verwenden, klicken Sie auf den transparenten Teil und klicken Sie auf das Fenster unter __Frame __. Wenn Sie dagegen "$ pyinstaller" verwenden, können Sie auch dann auf __the Frame klicken, wenn Sie auf den transparenten Teil klicken, und das folgende Fenster wird dadurch nicht beeinträchtigt. __ __ Der Beispielcode und die Ausführungsergebnisse sind unten aufgeführt.

Beispielcode

from tkinter import ttk
import tkinter

def lclick(self):
    print("lclick")
    label=ttk.Label(master=root,font=("Meilio",30),text="■ Werden Sie nicht dünner ... ■",foreground="red",background="green")
    label.bind("<1>",lclick)
    label.place(x=0,y=150)

root=tkinter.Tk()
root.wm_attributes("-transparentcolor", "snow")
ttk.Style().configure("TP.TFrame", background="snow")
f=ttk.Frame(master=root,style="TP.TFrame",width="400",height="300")
f.pack()

label=ttk.Label(master=root,font=("Meilio",30),text="■ Werden Sie nicht dünner ...",foreground="red",background="snow")
label.bind("<1>",lclick)
label.place(x=0,y=150)
root.mainloop()

Es ist ein Programm, das den Hintergrund des Etiketts grün macht, wenn Sie mit der linken Maustaste auf das Etikett klicken.

Ausführungsergebnis

compare.gif (Die linke Seite ist das Ergebnis der Ausführung der mit "$ python" konvertierten exe-Datei und die rechte Seite ist "$ pyinstaller", und der Code ist für beide gleich.)



Das ist ein großer Unterschied. Das Beispiel für Senden von Twitter-Suchergebnissen wie eine bestimmte Video-Site [Python] ist leicht zu verstehen. Dadurch wird ein "Label" ausgeführt, das den "Hintergrund" über dem transparenten Fenster transparent macht, und für dieses "Label" label.bind (" <1> ", leftClickFunction), label.bind (" <3> ", rightClickFunction) ist ein Programm, das beim Klicken eine Funktion ausführt. Wenn Sie $ pyinstaller verwenden, wird die Funktion beim korrekten Klicken ausgeführt, wie im folgenden GIF gezeigt. pytoninstallerjkpy.gif

Wenn Sie es jedoch auf "$ python" setzen, können Sie nicht auf "label" klicken, sodass Sie die in bind festgelegte Funktion nicht wie unten gezeigt ausführen können, und Sie können sehen, dass das hintere Fenster von D & D blau ausgewählt wird. pytonjkpy.gif

Zusammenfassung

Wenn Sie in der obigen Umgebung in "$ python hoge.py" auf einen transparenten Frame klicken, klicken Sie auf das Fenster unter dem Frame, sodass Sie nicht auf das "Label" im Frame klicken können. Es kann jedoch durch Konvertieren in exe gelöst werden, daher möchte ich es entsprechend dem Zweck richtig verwenden. Ich konnte nicht auf "Etikett" klicken und es wurde für n Stunden zerquetscht ()

Recommended Posts

Unterschied im Verhalten des transparenten Frames mit tkinter im Pyinstaller [Python]
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Numer0n mit Elementen, die mit Python erstellt wurden
Überprüfen Sie das Verhalten des Zerstörers in Python
GUI-Bildschneidewerkzeug mit Python + Tkinter
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Wie man tkinter mit Python in Pyenv benutzt
Projekt Euler # 6 "Differenz in der Summe der Quadrate" in Python
Grundlagen des Eingabe- / Ausgabebildschirms mit tkinter in python3
Ganz rechts Koordinaten des Etiketts mit tkinter erstellt
[Python] Verhalten von Argmax
Unterschied zwischen Ruby und Python in Bezug auf Variablen
[Python] Berechnung der Differenz von Datum und Zeit in Monaten und Jahren
Eine Einführung in die GUI-Software der Klassenplattform, die mit Python / Tkinter erstellt wurde! (Und viele Try and Error)! (Während des Schreibens)
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Ermöglichen Sie die Installation von in Python erstellten Befehlszeilentools
Python-Modul num2words Verhaltensunterschied zwischen Englisch und Russisch
Berechnen Sie mit Python Millionen von Stellen in der Quadratwurzel von 2
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Vergleich der Datenrahmenbehandlung in Python (Pandas), R, Pig
Schaben mit Selen in Python
Betreiben Sie LibreOffice mit Python
Schaben mit Chromedriver in Python
Finde Fehler in Python
Debuggen mit pdb in Python
Ich habe einen Blackjack mit Python gemacht!
Umgang mit Sounds in Python
Scraping mit Selen in Python
Objektäquivalenzbeurteilung in Python
Scraping mit Tor in Python
Tweet mit Bild in Python
Kombiniert mit Ordnungszahl in Python
Führen Sie Label mit tkinter [Python] aus.
Implementierung der schnellen Sortierung in Python
Ich habe mit Python einen Blackjack gemacht.
Othello gemacht mit Python (wie GUI)
Ich habe Wordcloud mit Python gemacht.
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Aktiviert, um PNG mit Pillow of Python in JPG zu konvertieren
tkinter konnte nicht mit Python verwendet werden, das von pyenv of anyenv installiert wurde
IPynb-Bewertungssystem mit TA von Introduction to Programming (Python)
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]
Konvertieren Sie in PyTorch geschriebenes Python-Skript mit PyInstaller in exe
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Zahlenerkennung in Bildern mit Python
Bildpixel-Manipulation in Python
[Python] Mit Tkinter mehrere Fenster anzeigen
Testen mit Zufallszahlen in Python
Mit Flask erstellte SNS Python-Grundlagen
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
GOTO in Python mit erhabenem Text 3
Arbeiten mit LibreOffice in Python: Importieren
Verhalten beim Auflisten in Python heapq