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