从0开发一个带有gui界面的python笔记-app窗口界面设计

上回我们分享了python设计主程序的大概内容,以及添加上对应的参考链接,我们今天分享一下如何把你的python程序可视化交互,它就是python3自带gui模块-Tkinter。这一块废了我很多时间,因为完全陌生。

Tkinter 是使用 python 进行窗口视窗设计的模块. 简单的构造, 多平台, 多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手. 它在 python 窗口视窗模块中是一款简单型的. 所以用来入门, 熟悉 窗口视窗的使用, 非常有必要.

参考:Tkinter教程

界面设计

学习完上面的基础教程后,我在ps上先设计一下软件的界面

 

开始写入到程序中

先把中间图片导出一张png图片在软件中插入。

 

import tkinter as tk
window = tk.Tk()
window.title("小笨驴fcp7tosrt")
window.geometry("720x440")#确定窗口大小
window.minsize(720,440)#最小窗口
window.maxsize(720,440)#最大窗口

##主程序内容
# 滚动文本框 反馈操作
scrolW = 80 # 设置文本框的长度
scrolH = 5 # 设置文本框的高度
t = tk.Text(window, width=scrolW, height=scrolH, wrap=tk.WORD)     # wrap=tk.WORD   这个值表示在行的末尾如果有一个单词跨行,会将该单词放到下一行显示,比如输入hello,he在第一行的行尾,llo在第二行的行首, 这时如果wrap=tk.WORD,则表示会将 hello 这个单词挪到下一行行首显示, wrap默认的值为tk.CHAR
t.place(y=360, x=360, anchor='center')       # columnspan 个人理解是将3列合并成一列   也可以通过 sticky=tk.W  来控制该文本框的对齐方式
l = tk.Label(window,image=image_file)#添加背景图
l.place(x=360, y=120, anchor='center')
b=tk.Button(window,text="选择文件",width=15,height=2,command=“函数名称”)#按钮1
b.place(y=300, x=220, anchor='center')
b2=tk.Button(window,text="转换",width=15,height=2,command=“函数名称”)#按钮2
b2.place(y=300, x=520, anchor='center')
window.mainloop()#循环窗口

打开文件对话框:

通过tk.filedialog打开文件,返回文件路径+文件名。(ps:是不是可以之间打开文件解析到内存)

效果图:

参考:

filename = tk.filedialog.askopenfilenames(initialdir="~/", title="Select file",filetypes=(("xml files", "*.xml"), ("all files", "*.*")))
url=filename
print(filename,url[0])
for b in url:
    t.insert(0.0, b.split("/")[-1] +"读取完成"+ "\n")
return url

 

菜单设计:

效果图:

参考:Menubar 菜单

#添加菜单
menubar = tk.Menu(window)
filemenu = tk.Menu(menubar,tearoff=0)##添加菜单1
menubar.add_cascade(label="文件",menu =filemenu)
filemenu.add_command(label="打开",command="你要打开的函数名称")
filemenu.add_command(label="转换",command="")
filemenu.add_command(label='退出', command=window.quit)
filemenu2 = tk.Menu(menubar,tearoff=0)#添加菜单2
menubar.add_cascade(label="升级为pro",menu =filemenu2)
filemenu2.add_command(label="激活pro",command="")
filemenu2.add_command(label="帮助",command="")
filemenu2.add_command(label="关于我们",command="")
filemenu2.add_command(label="更多小工具",command="")
window.config(menu=menubar)#要有此步骤才能生效 菜单添加到参考

二级窗口设计:

再新建一个窗口,起名为window2,需要继承父级设置(关键)。

效果图

windowhello = tk.Toplevel()  # 继承主窗口
windowhello.title("帮助")
windowhello.geometry("300x200")  # 确定窗口大小
windowhello.minsize(300, 200)  # 最小窗口
windowhello.maxsize(300, 200)  # 最大窗口
hellotext=tk.Label(windowhello,anchor = 'e',
                   text="1,在fcp7,选择需要转换的序列,导出为xml。\n2,在本软件点击“选择文件”,pro可以多选。\n3,在本软件点击“转换”。\n4,生成的srt文件在xml文件同一个文件夹\n\n(注意⚠️:序列里只放字幕并放在同一轨道)\n",
                   justify='left')
hellotext.pack(side='left')

弹出窗口

参考:https://morvanzhou.github.io/tutorials/python-basic/tkinter/2-10-messagebox/

 

tk.messagebox.showinfo(title='',message='')#提示信息对话窗
tk.messagebox.showwarning()#提出警告对话窗
tk.messagebox.showerror()#提出错误对话窗
tk.messagebox.askquestion()#询问选择对话窗
tk.messagebox.showwarning(title='警告', message="请输入正确激活码")

 

发表评论