Python GUI 案例 (tkinter module)

news/2025/2/20 5:14:52/
  • Python GUI 设计案例

基于matplotlib的 y-x 简单绘图

import tkinter as tk
from tkinter import filedialog
import matplotlib.pyplot as plt
import numpy as npdef select_x_file():x_file_path = filedialog.askopenfilename(title="x")x_file_entry.delete(0, tk.END)x_file_entry.insert(tk.END, x_file_path)def select_y_file():y_file_path = filedialog.askopenfilename(title="y")y_file_entry.delete(0, tk.END)y_file_entry.insert(tk.END, y_file_path)def plot_graph():x_file_path = x_file_entry.get()y_file_path = y_file_entry.get()x_data = np.loadtxt(x_file_path)y_data = np.loadtxt(y_file_path)if len(x_data) != len(y_data):result_text.set("len x not equals len y")else:plt.plot(x_data, y_data)plt.title(title_entry.get())plt.xlabel(xlabel_entry.get())plt.ylabel(ylabel_entry.get())plt.show()def save_graph():save_path = filedialog.asksaveasfilename(title="save graphic", defaultextension=".png")plt.savefig(save_path)window = tk.Tk()
window.title("PLOT y-x GRAPH")x_file_label = tk.Label(window, text="x path:")
x_file_label.grid(row=0, column=0)x_file_entry = tk.Entry(window, width=50)
x_file_entry.grid(row=0, column=1)x_button = tk.Button(window, text="file x ", command=select_x_file)
x_button.grid(row=0, column=2)y_file_label = tk.Label(window, text="y path:")
y_file_label.grid(row=1, column=0)y_file_entry = tk.Entry(window, width=50)
y_file_entry.grid(row=1, column=1)y_button = tk.Button(window, text="file y", command=select_y_file)
y_button.grid(row=1, column=2)plot_button = tk.Button(window, text="PLOT!", command=plot_graph)
plot_button.grid(row=2, column=0, columnspan=3)title_label = tk.Label(window, text="TITLE")
title_label.grid(row=3, column=0)title_entry = tk.Entry(window, width=50)
title_entry.grid(row=3, column=1)xlabel_label = tk.Label(window, text="x LABEL")
xlabel_label.grid(row=4, column=0)xlabel_entry = tk.Entry(window, width=50)
xlabel_entry.grid(row=4, column=1)ylabel_label = tk.Label(window, text="y LABEL")
ylabel_label.grid(row=5, column=0)ylabel_entry = tk.Entry(window, width=50)
ylabel_entry.grid(row=5, column=1)save_button = tk.Button(window, text="SAVE GRAPH", command=save_graph)
save_button.grid(row=6, column=0, columnspan=3)window.geometry("600x300")
window.mainloop()

 

 


http://www.ppmy.cn/news/983530.html

相关文章

改进的北方苍鹰算法优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码...

今天给大家带来一期由改进的北方苍鹰算法(SCNGO)优化VMD的两个参数。 同样以西储大学数据集为例,选用105.mat中的X105_BA_time.mat数据中1000个数据点。没有数据的看这篇文章。西储大学轴承诊断数据处理,matlab免费代码获取 选取四种适应度函数进行优化&…

2023最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况,在这过程中要展现出自信,对工作有激情,上进,好学) 面试官您好,我叫###,今年26岁,来自江西九江,就读专业是电子商务,毕…

行星碰撞(力扣)栈 JAVA

给定一个整数数组 asteroids,表示在同一行的行星。 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。 找出碰撞后剩…

解决ORACLE PLSQL查询速度慢问题

在表内已建有索引情况下,查询速度有时快,有时慢的问题。 数据库:Oracle, 工具:PlsqlDev 不走索引的原因通常有以下几种: 1.索引失效或丢失:当数据库中的索引被减少、删除或者失效时&#xff0…

SDUT 2023 summer team contest(for 22) - 6

D - Disastrous Downtime 题意:就是给你n个询问,每个询问耗时一秒,以及每个计算机在一秒内可以同时处理m个询问,问最少需要多少个计算机。 思路:我们遍历每一个询问后的一秒钟里有多少给询问,将他们向上取…

IP网络对讲求助模块

SV-6002 IP网络对讲求助模块是一款壁挂式一键求助对讲模块,具有10/100M以太网接口,其接收网络的音频数据,实时解码播放,还配置了麦克风输入和扬声器功放输出。SV-6002模块可实现对讲、广播、等功能,作为网络广播对讲系…

MySQL5.7 与 MariaDB10.1 审计插件兼容性验证

这是一篇关于发现 MariaDB 审计插件导致 MySQL 发生 crash 后,展开适配验证并进行故障处理的文章。 作者:官永强 爱可生DBA 团队成员,擅长 MySQL 运维方面的技能。热爱学习新知识,亦是个爱打游戏的宅男。 本文来源:原创…

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

系列文章目录 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) 编程小白的自学笔记十(python爬虫入门二实例代码详解) 编程小白的自学笔记九(python爬虫入门代码详解) 目录 系列文章…