python 弹出窗口上的图像显示

a64a0gku  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(219)

我正在使用pywebview的windows桌面应用程序。我想实现一个完整的图像在启动窗口上5秒。一个非常好的例子Easeus应用程序在启动时显示这样的图像;

这些是我的python代码;

import webview
import requests
import tkinter as tk

# initializing URL
url = "http:127.0.0.1:81"
timeout = 10
try:
# requesting URL
request = requests.get(url,
                       timeout=timeout)
webview.create_window('Hello', 'http://127.0.0.1:8000/', resizable=True)
webview.start()

# catching exception
except (requests.ConnectionError,
    requests.Timeout) as exception:
window = tk.Tk()
greeting = tk.Label(text="Hello, Tkinter")
greeting.pack()
jv2fixgn

jv2fixgn1#

pywebview的官方文档中,我找到了销毁窗口的例子。它在5秒后关闭窗口。

import webview
import time

def destroy(window):
    # show the window for a few seconds before destroying it:
    time.sleep(5)
    print('Destroying window..')
    window.destroy()
    print('Destroyed!')

if __name__ == '__main__':
    window = webview.create_window('Destroy Window Example', 'https://pywebview.flowrl.com/hello')
    webview.start(destroy, window)
    print('Window is destroyed')

但如果使用tkinter,则可以使用tk.Label(image=...)-和window.after(5000, window.destroy)在5000 ms(5秒)后关闭窗口

import tkinter as tk

window = tk.Tk()

img = tk.PhotoImage(file='image.png')  # has to be `file=`

tk.Label(image=img).pack()

window.after(5000, window.destroy)     # `destroy` without `()`

window.mainloop()

对于.jpg,可能需要PIL.ImageTk

import tkinter as tk
from PIL import ImageTk

window = tk.Tk()

img = ImageTk.PhotoImage(file='image.jpg')  # has to be `file=`

tk.Label(image=img).pack()

window.after(5000, window.destroy)     # `destroy` without `()`

window.mainloop()

编辑:

您也可以使用pywebview来显示带有图片和标签<meta http-equiv="refresh" content="5;https://...">的HTML,它将在5秒后重定向到其他页面

索引.html

<meta http-equiv="refresh" content="5;https://stackoverflow.com">

<a href="https://en.wikipedia.org/wiki/Lenna">Lenna</a> from Wikipedia:<br>

<img src="https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png">

主文件.py

import webview

webview.create_window('Example', 'index.html')
webview.start()

如果你使用这个方法,你就不需要Python来启动它。
您可以将bash/批处理脚本与chrome.exe index.html一起使用

相关问题