- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用以下代码测试应用程序:
#!/usr/bin/env python3
import os
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
root = Tk()
root.title("Image Viewer App")
root.withdraw()
location_path = filedialog.askdirectory()
root.resizable(0, 0)
#Load files in directory path
im=[]
def load_images(loc_path):
for path,dirs,filenames in os.walk(loc_path):
for filename in filenames:
im.append(ImageTk.PhotoImage(Image.open(os.path.join(path, filename))))
load_images(location_path)
root.geometry("700x700")
#Display test image with Label
label=Label(root, image=im[0])
label.pack()
root.mainloop()
问题是当我运行它时,我的系统会死机,Linux 发行版会崩溃。我无法说出我做错了什么,除非我不确定将整个图像存储在列表变量中与仅存储位置本身是否是一个好主意。现在,它只是测试使用 img=[0] 打开一张图像的能力。
最佳答案
加载图像可能需要时间并导致卡住。最好运行load_images()
在子线程中:
import os
import threading
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
root = tk.Tk()
root.geometry("700x700")
root.title("Image Viewer App")
root.resizable(0, 0)
root.withdraw()
#Display test image with Label
label = tk.Label(root)
label.pack()
location_path = filedialog.askdirectory()
root.deiconify() # show the root window
#Load files in directory path
im = []
def load_images(loc_path):
for path, dirs, filenames in os.walk(loc_path):
for filename in filenames:
im.append(ImageTk.PhotoImage(file=os.path.join(path, filename)))
print(f'Total {len(im)} images loaded')
if location_path:
# run load_images() in a child thread
threading.Thread(target=load_images, args=[location_path]).start()
# show first image
def show_first_image():
label.config(image=im[0]) if len(im) > 0 else label.after(50, show_first_image)
show_first_image()
root.mainloop()
请注意,我已更改
from tkinter import *
至
import tkinter as tk
因为不推荐通配符导入。
关于python-3.x - Tkinter 图像应用程序在运行后一直卡住系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70515842/
我有一个在 Android 市场上相当流行的应用程序,它允许数以万计的用户按下一个按钮并向它发出语音命令。然后我就可以做很多不同的事情,比如给他们提供当前的天气预报等等...... 无论如何,我的应用
令人惊讶的是,标题基本上解释了它。我们有一个我们的客户制作的页面,我们正在重新创建该页面。 页面高度会一直增加,直到(我假设是这样)浏览器达到它的极限。我已经尝试过 Firebug 和 W3 验证器,
我是 react-native 的新手,试图创建我自己的组件,但它一直显示一个空屏幕。 这是我的组件代码 class BoxComponent extends Component { cons
我正在为我的 PHP 元素创建一个非常简单的博客,但遇到了一个简单的问题。我无法让我的页眉图像一直 float 。我有一个横幅,左边有一些文字,我有一个 1px 的切片,在可以选择的任何分辨率的宽度上
为什么我可以在另一个 Controller 的 View 中访问一个 Controller 的辅助方法?有没有办法在不破解/修补 Rails 的情况下禁用它? 最佳答案 @George Schreib
我正在使用带有最新 ADT 插件的 Eclipse Kepler SP2。每隔一分钟 Eclipse 就会说“为 Android 4.4.2 加载数据”并阻止我想做的一切。我在不同的文件夹中有几个 E
我是一名优秀的程序员,十分优秀!