[英]Tkinter / pylab conflict?
我是Python的新手,但本周已经开始编写一些小脚本。 我目前正在尝试编写一个简单的程序来绘制一些数据。 我想做以下事情:
我基本上已经使该程序开始工作了-我可以使用tkFileDialog.askdirectory
选择目录,然后读取数据,进行绘制并使用鼠标单击进行绘制。
我的问题是使用tkFileDialog
打开的TK根窗口。 如果我使用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()
由于您似乎在文件对话框之后似乎没有使用Tkinter,因此可以在用户选择文件后立即执行root.destroy()
关闭Tk根窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.