我有一个简单的代码块,当用户按下按钮时会显示图像。当我使用.py
扩展名保存脚本时,后台有控制台,因此我决定将其保存为.pyw
以隐藏它。这是我的代码;
from tkinter import *
from PIL import Image
def open_image():
im = Image.open("tobi.jpg")
im.show()
root = Tk()
root.geometry("800x600+400+300")
buton = Button(root)
buton.config(text = "Show the image", command = open_image, activebackground = "yellow", bg = "lightgreen")
buton.pack()
mainloop()
我在背景中看不到cmd
因为我将其保存为.pyw。但是,当我单击按钮时,在打开图像之前我会看到控制台很短的时间,然后它就会消失。我怎么能避免这种情况,我想完全隐藏控制台,
答案 0 :(得分:0)
我不知道如何通过纯tk
执行此操作,但如果子进程是一个选项,那么您可以执行以下操作。不是一个很好的解决方案,因为你必须使用子进程模块才能打开图像......但无论如何....
import tkinter as tk
import subprocess as s
root = tk.Tk()
def open_image():
s.call(["tobi.jpg"], shell=True)
button = Button(root)
button.config(text="Show the Image", command=open_image, activebackground="yellow", bg="lightgreen")
button.pack()
root.mainloop()
或者您可以使用os
并使用os.system("start my_file_name.jpg")
(假设这里有窗户)
使用os.system控制台将显示但只是非常简短。
真的做同样的事情,用PIL
打开比其他人慢,所以你看到控制台的时间更长。
答案 1 :(得分:0)
你可以使用以下代码:`
import win32console
import win32gui
win=win32console.GetConsoleWindow() # For closing command window
win32gui.ShowWindow(win,0)
这将在开始时关闭cmd窗口,并且不会再次显示。 cmd窗口最初可以显示很短的时间,作为闪烁,然后它将不会显示。你可以保存.py扩展名。
这里是完整的代码:`
from Tkinter import *
from PIL import Image
import win32console
import win32gui
win=win32console.GetConsoleWindow() # For closing command window
win32gui.ShowWindow(win,0)
def open_image():
im = Image.open("tobi.jpg")
im.show()
root = Tk()
root.geometry("800x600+400+300")
buton = Button(root)
buton.config(text = "Show the image", command = open_image, activebackground = "yellow", bg = "lightgreen")
buton.pack()
mainloop()