1
我对Python很陌生,但本周开始编写几个小脚本。我目前正在编写一个简单的程序来绘制一些数据。我想做到以下几点:Tkinter/pylab冲突?
- 要求用户使用GUI
- 为目录中的每个文件选择数据目录,做图
- 接近每个情节用鼠标点击前进到下一个情节
我大部分得到程序的工作 - 我可以选择使用tkFileDialog.askdirectory
的目录,然后在数据读取方面,虽然用鼠标点击他们做出的情节和进步。
我的问题是与TK根窗口打开tkFileDialog
。如果我使用withdraw()
,则额外的窗口不会打开,但只会显示第一个图(鼠标单击会关闭该图,但不会显示下一个图)。如果我不使用withdraw()
,必须在第一个绘图之后手动关闭额外的窗口以提前到第二个窗口。
我想知道是否有方法可以选择避免显示额外窗口的目录?
我附上一些示例代码来展示我的思维过程。这不叫的实际数据,但仍然重现问题(你需要的.D更改为您的目录中有一些文件类型):
import numpy as np
from pylab import *
import glob
import os
import Tkinter, tkFileDialog
##################################################
#define the mouse click event
##################################################
def moveon(event):
close()
##################################################
#ask for the directory
##################################################
root = Tkinter.Tk()
#root.withdraw()
direc = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
os.chdir(direc)
for files in glob.glob("*.D*"):
##################################################
#Read in the data
##################################################
#assume this reads x and y from each file
x = [1, 2]
y = [3, 4]
##################################################
#loop though the plots
##################################################
fig = figure(1)
plot(x,y)
cid = fig.canvas.mpl_connect('button_press_event',moveon)
show()
这工作 - 谢谢! – Jennifer