Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PyGTK + Диалог открытия файла с предпросмотром 
V
    Опции темы
pento
Дата 4.8.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: 2
Всего: 4



Делаю менеджер обоев для рабочего стола. PyGTK. 
Интерфейс рисую в Glade.
Не совсем понимаю как в диалоге выбора фала сделать предпросмотр, дабы сразу можно было показать уменьшенную копию картинки.

PM MAIL   Вверх
pythonwin
Дата 7.8.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



стандартный не нашел...
сделай так:
- в glade возьми виджет окна файлов
- к нему добавь страва рисунок
- и на selected повесь событие, а в коде на событие законекть метод, который будет брать имя файла и пытаться отобразить в рисунке в окне файлов

PM WWW GTalk Jabber   Вверх
pento
Дата 7.8.2007, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: 2
Всего: 4



pythonwin, ну в принципе так и предлологал, но не был уверен. Спасибо!
PM MAIL   Вверх
pythonwin
Дата 7.8.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



Цитата(pento @  7.8.2007,  11:23 Найти цитируемый пост)
pythonwin, ну в принципе так и предлологал, но не был уверен. Спасибо! 

как решишь проблему выложи, пожалуйста, код smile
PM WWW GTalk Jabber   Вверх
pento
Дата 8.8.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: 2
Всего: 4



pythonwin, проблему решил smile
http://pygtk.org/docs/pygtk/class-gtkfilechooser.html
См методы
Код

def set_preview_widget(preview_widget)
def get_preview_widget()
def set_preview_widget_active(active)
def get_preview_widget_active()
def get_preview_filename()


Получилось что-то типа 
Код

# ....
    self.chooser = gtk.FileChooserDialog(title=None,action=gtk.FILE_CHOOSER_ACTION_OPEN, 
                buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))
        self.chooser.set_current_folder(os.environ['HOME'])
        self.chooser.set_default_response(gtk.RESPONSE_OK)

        filter = gtk.FileFilter()
        filter.set_name("Images")
        filter.add_mime_type("image/png")
        filter.add_mime_type("image/jpeg")
        filter.add_mime_type("image/gif")
        filter.add_pattern("*.png")
        filter.add_pattern("*.jpg")
        filter.add_pattern("*.gif")
        filter.add_pattern("*.tif")
        filter.add_pattern("*.xpm")
        self.chooser.add_filter(filter)
        # preview of selected file
        self.previewBox = gtk.VBox(False, 0)
        self.previewImage = gtk.Image()
        self.previewBox.pack_start(self.previewImage, True, False, 0)
        self.previewBox.show_all()
        self.chooser.set_preview_widget_active(False)

        self.chooser.set_preview_widget(self.previewBox)
        self.chooser.set_use_preview_label(False)
        self.chooser.connect("selection-changed", self.onSelection)
# ....
    def onSelection(self, widget):
        pathname = widget.get_preview_filename()
        if (os.path.isfile(pathname)):
            self.previewImage.set_from_file(pathname)
            self.chooser.set_preview_widget_active(True)
        else:
            self.chooser.set_preview_widget_active(False)



P.S. Переделал код. Оказалось всё ещё проще и по ссылке даже пример есть smile

Это сообщение отредактировал(а) pento - 9.8.2007, 18:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Разработка GUI | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.