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.
Windows10-64bit Python3.7 Pyinstaller 3.6
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.
(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.
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.
(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.
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.
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