我有一個從目錄獲取文件並將其放入列表的進程。然後它在循環中迭代該列表。循環的最後一行是它應該更新我的GUI顯示的地方,然後再次使用列表中的下一項開始循環。直到整個過程完成後,Python GUI纔會更新
我的問題是,它並沒有實際更新gui,直到整個過程完成,這取決於列表的大小可能是30秒到一分鐘。這給了程序被「掛起」的感覺
我想要做的是處理列表中的一行,更新gui然後繼續。我哪裏做錯了?更新列表的行是#使用驅動器內容填充列表視圖。打印語句僅用於調試。
def populateList(self):
print "populateList"
sSource = self.txSource.Value
sDest = self.txDest.Value
# re-intialize listview and validated list
self.listView1.DeleteAllItems()
self.validatedMove = None
self.validatedMove = []
#Create list of files
listOfFiles = getList(sSource)
#prompt if no files detected
if listOfFiles == []:
self.lvActions.Append([datetime.datetime.now(),"Parse Source for .MP3 files","No .MP3 files in source directory"])
#Populate list after both Source and Dest are chosen
if len(sDest) > 1 and len(sDest) > 1:
print "-iterate listOfFiles"
for file in listOfFiles:
sFilename = os.path.basename(file)
sTitle = getTitle(file)
sArtist = getArtist(file)
sAlbum = getAblum(file)
# Make path = sDest + Artist + Album
sDestDir = os.path.join (sDest, sArtist)
sDestDir = os.path.join (sDestDir, sAlbum)
#If file exists change destination to *.copyX.mp3
sDestDir = self.defineDestFilename(os.path.join(sDestDir,sFilename))
# Populate listview with drive contents
self.listView1.Append([sFilename,sTitle,sArtist,sAlbum,sDestDir])
#populate list to later use in move command
self.validatedMove.append([file,sDestDir])
print "-item added to SourceDest list"
else:
print "-list not iterated"
我對python非常陌生,所以無法獲取更新方法。我嘗試在append命令之後插入self.Update()的幾個變體。其中一些造成錯誤,另一些沒有可見的影響。你能給我一個額外的推動嗎? – ccwhite1
我不知道爲什麼,但一些繼續玩self.Update()後開始工作。但現在它更新了,雖然它的處理我無法使用滑塊。有關於此的任何想法? – ccwhite1