2012-03-02 28 views
3

私は現時点で非常に奇妙な問題を抱えています。私はあなたがそれを再現できることを願っています。次のPythonコードを試してください:gtk.FileChooserDialog.get_current_folder()の奇妙な動作

import gtk 


print '=== 1 ===' 

def _createFileDialog(): 
    dialog = gtk.FileChooserDialog() 
    print dialog.get_current_folder(), '***' 
    dialog.set_current_folder('/home/') 
    print dialog.get_current_folder(), '###' 

dialog = _createFileDialog() 


print '=== 2 ===' 

dialog = gtk.FileChooserDialog() 
print dialog.get_current_folder(), '***' 
dialog.set_current_folder('/home/') 
print dialog.get_current_folder(), '###' 

あなたが見ることができるように、コード・セクションは基本的に同じであるので、あなたは同じ結果を期待することがあります。ただし、最初のセクションでは、 '###'で終わる行は 'None ###'と表示され、2番目のセクションでは '/ home ###'が正しく表示されます。 私は同僚の2つの異なるコンピュータでこれを再試行し、1台のコンピュータでこれは再現可能でした。誰が問題が何であるか知っていますか?事前 で

ニースのご挨拶と感謝クリス

答えて

2

また、どちらの場合も、「なし###」印刷することはできません。

set_current_folderへの呼び出しが期待どおりにはGTKがget_current_folderを呼び出す前に、保留中のイベントを処理させる場合、それは動作しますが、非同期のようだ:

dialog = gtk.FileChooserDialog() 
print dialog.get_current_folder(), '***' 
dialog.set_current_folder('/home/') 

while gtk.events_pending(): 
    gtk.main_iteration() 

print dialog.get_current_folder(), '###' 
+0

大丈夫ああ;)ソリューションのための感謝を! – zeha