reference:Python GUI 编程(Tkinter) | 菜鸟教程 (runoob.com)
Python GUI编程(Tkinter)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:
- Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
- wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。
- Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。
创建一个GUI程序
- 1、导入 Tkinter 模块
- 2、创建控件
- 3、指定这个控件的 master, 即这个控件属于哪一个
- 4、告诉 GM(geometry manager) 有一个控件产生了。
0.定义按钮处理函数
tkinter.filedialog
--- 文件选择对话框
tkinter.filedialog
模块提供了用于创建文件/目录选择窗口的类和函数
def process_data():
global fund_path, fund_name, month_start, month_end, choose_day
fund_path = entry_fund_path.get()
fund_name = entry_fund_name.get()
month_start = entry_month_start.get()
month_end = entry_month_end.get()
choose_day = entry_choose_day.get()
fundSample(fund_path, fund_name, month_start, month_end, choose_day)
def browse_file():
filename = filedialog.askopenfilename(initialdir="/", title="选择文件")
entry_fund_path.delete(0, tk.END)
entry_fund_path.insert(0, filename)
以上这段代码是使用Python中的tkinter库中的filedialog模块。它的作用是创建一个对话框,让用户选择文件,然后将选择的文件名存储在变量
filename
中。
具体解释如下:
filename = filedialog.askopenfilename(initialdir="/", title="选择文件")
:这行代码打开一个文件对话框,初始目录设置为根目录
/
,对话框的标题是"选择文件"。用户选择完文件后,选择的文件路径会被存储在
filename
变量中。
entry_fund_path.delete(0, tk.END)
:这行代码是清空名为
entry_fund_path
的文本框中的内容,
tk.END
代表文本框的末尾。
entry_fund_path.insert(0, filename)
:这行代码是将
filename
中存储的文件路径插入到名为
entry_fund_path
的文本框中,插入的位置是从文本框的开头开始(0位置)。
总之,这段代码的作用是让用户选择文件,并将选择的文件路径显示在名为
entry_fund_path
的文本框中。
1.创建主窗口
root = tk.Tk()
root.title("基金数据处理")
2.创建标签和文本输入框
reference:Python Tkinter 文本框(Entry) | 菜鸟教程 (runoob.com)
Python Tkinter 标签控件(Label) | 菜鸟教程 (runoob.com)
label_fund_path = tk.Label(root, text="基金文件路径:")
label_fund_path.grid(row=0, column=0, padx=5, pady=5, sticky="w")
entry_fund_path = tk.Entry(root, width=50)
entry_fund_path.grid(row=0, column=1, padx=5, pady=5)
label_fund_name = tk.Label(root, text="基金名称:")
label_fund_name.grid(row=1, column=0, padx=5, pady=5, sticky="w")
entry_fund_name = tk.Entry(root)
entry_fund_name.grid(row=1, column=1, padx=5, pady=5)
label_month_start = tk.Label(root, text="开始月份:")
label_month_start.grid(row=2, column=0, padx=5, pady=5, sticky="w")
entry_month_start = tk.Entry(root)
entry_month_start.grid(row=2, column=1, padx=5, pady=5)
label_month_end = tk.Label(root, text="结束月份:")
label_month_end.grid(row=3, column=0, padx=5, pady=5, sticky="w")
entry_month_end = tk.Entry(root)
entry_month_end.grid(row=3, column=1, padx=5, pady=5)
label_choose_day = tk.Label(root, text="选择日期:")
label_choose_day.grid(row=4, column=0, padx=5, pady=5, sticky="w")
entry_choose_day = tk.Entry(root)
entry_choose_day.grid(row=4, column=1, padx=5, pady=5)
3.创建按钮,并绑定处理函数
reference: Python Tkinter 按钮组件 | 菜鸟教程 (runoob.com)
button_browse = tk.Button(root, text="浏览", command=browse_file)
button_browse.grid(row=0, column=2, padx=5, pady=5)
button_process = tk.Button(root, text="处理数据", command=process_data)
button_process.grid(row=5, columnspan=2, padx=5, pady=5)
4.启动主事件循环
root.mainloop()
版权归原作者 yangwj211 所有, 如有侵权,请联系我们删除。