python - 如何使用 GUI 的 Tkinter 框架浏览和导入视频?
问题描述
我在尝试在我的 GUI 中实现“浏览视频”功能时遇到了问题。本质上,我希望能够浏览并选择一个 .mp4 文件,该文件在选择时也会在屏幕上播放。这就是我目前所拥有的[open() 方法应该打开文件]:
from tkinter import *
from tkinter import ttk, messagebox, font
from tkinter.ttk import *
from tkinter import filedialog
# from PIL import ImageTk, Image
class MainScreen:
def __init__(self, master_window):
"""
Constructor initializes app.
"""
self.master = master_window
self.master.title("Markerless Demo")
self.master.geometry("1000x500")
self.master.columnconfigure(0,weight=1)
self.master.rowconfigure(0,weight=1)
#Creates notebook
n = ttk.Notebook(self.master)
n.grid(sticky="nsew")
#Logo Creation
welcome_sign = ttk.Label()
welcome_sign['image'] = image
welcome_sign.grid(column=0,row=2)
# Welcome_Page Frame ----------------------------------
welcome_page = ttk.Frame(self.master) # first page, which would get widgets gridded into it
n.add(welcome_page, text='Welcome')
welcomeText = ttk.Label(welcome_page, text="Welcome to the Markerless Mice Tracking Project Manager GUI!" +
"\nBegin by clicking 'Project Management' " +
"\ntab to create a new project or load an existing one.",
font = ("Tw Cen MT", 14))
# welcomeText.grid(column=0,row=1, columnspan=2,rowspan=3)
welcomeText.place(x=500, y=100, anchor="center")
# Video_Input Frame -------------------------------------
video_input_page = ttk.Frame(self.master)
n.add(video_input_page, text='Project Management')
option_frame = ttk.Labelframe(video_input_page, text='Please choose an option', width=200, height=200)
option_frame.grid(column=0, row=0)
videoInputBar = ttk.Label(video_input_page, text = "Select Video",
font = ("Tw Cen MT", 12))
videoInputBar.grid(column=0,row=1)
loadVideoBtn = ttk.Button(video_input_page, text = "Load Video", command=open)
loadVideoBtn.grid(column=0, row=2, pady=20)
fileEntryBar = ttk.Entry(video_input_page)
fileEntryBar.grid(column=2,row=2, pady=5, ipadx=100, padx=10)
# Allows user to select to create new project or load old one
project_flag = StringVar()
create_new_bttn = ttk.Radiobutton(option_frame, text="Create new project", variable = project_flag, value="create")
create_new_bttn.grid(column=0,row=0)
load_proj_bttn = ttk.Radiobutton(option_frame, text="Load existing project", variable = project_flag, value="load")
load_proj_bttn.grid(column=1,row=0)
def open():
master_window.filename = filedialog.askopenfilename(initialdir ="/gui/images",title="Select A File", filetypes=(("mp4 files", "*.mp4")))
file_path = ttk.Label(master_window.filename)
master_window = Tk()
master_window.style = Style()
master_window.style.theme_use("clam")
image = PhotoImage(file="200w.gif")
print(font.families())
MainScreen(master_window)
master_window.mainloop()
解决方案
推荐阅读
- sql - 使用带有 VB.net 的 IN 语句从 SQL 数据库中删除多条记录
- windows - 如何在提升的特权下使用带有 vbscript 的 windows 变量路径复制文件?
- r - 如何在R中的一个非常大的文件中找到与特定日期相对应的UNIX时间
- google-cloud-platform - 上传到云存储 - 我是否遗漏了一些明显的东西?
- r - 如何在ggplot中突出显示曲线上的点
- git - 本地 Git 配置参数和 GitHub 帐户之间的区别?
- flutter - 如何在 Flutter 中使用 CircularNotchedRectangle 向 BottomAppBar 添加圆角
- javascript - 如何为我的图像幻灯片修复此代码?
- c++ - glfw 需要链接什么?
- rust - 如何在 Rust 中测试类型相等性?