странное поведение gtk.FileChooserDialog.get_current_folder () - PullRequest
3 голосов
/ 02 марта 2012

У меня сейчас очень странная проблема, и я надеюсь, что вы сможете ее воспроизвести.Пожалуйста, попробуйте следующий код Python:

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 ###», а во втором разделе правильно выводится «/ home ###».Я перепробовал это на двух разных компьютерах моих коллег, и на одном компьютере это было воспроизводимо.Кто-нибудь знает, в чем может быть проблема?

Приятные поздравления и заранее спасибо Крис

1 Ответ

2 голосов
/ 02 марта 2012

Он также может вывести «None ###» в обоих случаях.

Вызов 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(), '###'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...