Tkinter
是 Python 的标准 GUI(图形用户界面)库,它允许开发者创建窗口、按钮、文本框等控件。Tkinter
适用于快速创建简单的 GUI 应用程序。
Tkinter
支持多种操作系统,如 Windows、macOS 和 Linux。Tkinter
的 API 设计简单直观,适合初学者。Tkinter
窗口。假设你有两个 Python 文件:main.py
和 camera_preview.py
。camera_preview.py
使用 Tkinter
显示相机预览。
import tkinter as tk
from PIL import Image, ImageTk
import cv2
class CameraPreview:
def __init__(self, window, window_title, video_source=0):
self.window = window
self.window.title(window_title)
self.video_source = video_source
# Open the video source
self.vid = cv2.VideoCapture(self.video_source)
if not self.vid.isOpened():
raise ValueError("Unable to open video source", video_source)
# Default resolutions of the frame are obtained.
self.delay = 15
self.update()
self.window.mainloop()
def update(self):
# Get a frame from the video source
ret, frame = self.vid.read()
if ret:
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
self.photo = ImageTk.PhotoImage(image=Image.fromarray(frame))
self.canvas.create_image(0, 0, image=self.photo, anchor=tk.NW)
self.window.after(self.delay, self.update)
def __del__(self):
if self.vid.isOpened():
self.vid.release()
# Create a window and pass it to the Application object
CameraPreview(tk.Tk(), "Tkinter Camera Preview")
import subprocess
def run_camera_preview():
subprocess.run(['python', 'camera_preview.py'])
if __name__ == "__main__":
run_camera_preview()
main.py
时,camera_preview.py
没有显示窗口原因:
main.py
和 camera_preview.py
使用相同的 Python 环境。camera_preview.py
文件在当前工作目录中,或者提供正确的文件路径。解决方法:
camera_preview.py
文件在当前工作目录中,或者在 subprocess.run
中指定完整路径。subprocess.run(['python', '/path/to/camera_preview.py'])
camera_preview.py
中的相机预览窗口显示为空白原因:
解决方法:
通过以上步骤,你应该能够成功运行 main.py
并显示 camera_preview.py
中的 Tkinter 窗口。
领取专属 10元无门槛券
手把手带您无忧上云