Выбор файла (gtk.FileSelection)

Заметка

Виджет FileSelection считается устаревшим в PyGTK 2.4 и выше.

В новых приложениях используйте FileChooserDialog.

Виджет выбора файла это быстрый и простой способ отобразить диалоговое окно для выбора файла. В нём есть кнопки Ok, Cancel, и Help. А это хороший способ ускорить программирование.

Для создания этого виджета используется:

  filesel = gtk.FileSelection(title=None)

Для выбора имени файла, например, выбора специальной директории или задания имени файла по умолчанию, используйте метод:

  filesel.set_filename(filename)

Для того чтобы получить имя файла выбранного пользователем, используйте метод:

  filename = filesel.get_filename()

Также есть атрибуты-ссылки к виджетам, содержащимся внутри него. Вот эти атрибуты.

  filesel.dir_list
  filesel.file_list
  filesel.selection_entry
  filesel.selection_text
  filesel.main_vbox
  filesel.ok_button
  filesel.cancel_button
  filesel.help_button
  filesel.history_pulldown
  filesel.history_menu
  filesel.fileop_dialog
  filesel.fileop_entry
  filesel.fileop_file
  filesel.fileop_c_dir
  filesel.fileop_del_file
  filesel.fileop_ren_file
  filesel.button_area
  filesel.action_area

Скорее всего вы захотите использовать атрибуты ok_button, cancel_button и help_button для подключения сигналов к callback-функциям.

Пример filesel.py показывает использование виджета FileSelection. Как вы можете видеть, для создания виджета FileSelection почти ничего не нужно. Но поскольку виджет устарел, то выглядит он наполовину переведённым на другие языки, отличные от английского. Рисунок 9.14, “Пример выбора файла” показывает получаемое окно.

Рисунок 9.14. Пример выбора файла

File Selection Example

Исходный код для filesel.py:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# example filesel.py

import pygtk
pygtk.require('2.0')
import gtk

class FileSelectionExample:
    # Получаем выбранное имя файла и пишем его в консоль
    def file_ok_sel(self, w):
        print "%s" % self.filew.get_filename()

    def destroy(self, widget):
        gtk.main_quit()

    def __init__(self):
        # Создаём виджет выбора файла
        self.filew = gtk.FileSelection("Выбор файла")

        self.filew.connect("destroy", self.destroy)
        # Подключаем ok_button к методу file_ok_sel
        self.filew.ok_button.connect("clicked", self.file_ok_sel)
    
        # Подключаем cancel_button к уничтожению виджета
        self.filew.cancel_button.connect("clicked",
                                         lambda w: self.filew.destroy())
    
        # Устанавливаем имя файла,
        # и даём имя файла по умолчанию
        self.filew.set_filename("penguin.png")
    
        self.filew.show()

def main():
    gtk.main()
    return 0

if __name__ == "__main__":
    FileSelectionExample()
    main()

Предыдущая страница На уровень выше  Следующая страница
9.13. Выбор цвета (gtk.ColorSelection) К оглавлению  9.15. Выбор шрифта (gtk.FontSelectionDialog)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>