2016-12-31 10 views
2

положения: Моего каркасного питона плагин показывает пользователь выпадающий с двумя вариантами [ «.jpg», «.png»].каркасный питон плагин в: как вызвать еще один ввод данных пользователя

Вопрос: Как показать второе окно ввода с условным содержанием, основываясь на первом входе?

  • .jpg -> "Качество" Регулятор диапазона [0 - 100]
  • .png -> "Сжатие" Диапазон слайдер [0 - 9]

Иными словами: Как запустить (зарегистрированный) плагин с пользовательским окном ввода из основной функции подключаемого модуля?

ответ

2

Либо вы создаете полный графический интерфейс с PyGTK (или, возможно, tkinter), либо найдете другой способ. Обычно для этого, если вы придерживаться автоматически сгенерированных диалогах у вас есть выбор между:

  • несколько неуклюжий диалог, который просит для обоих параметров и будет игнорировать тот или другой в зависимости от формата изображения,
  • два пункты меню для двух разных диалогов, один для PNG и один для JPG.

С другой стороны, я всегда использую степень сжатия 9 в моем формате PNG (AFAIK только благо других уровней процессорное время, но это спорный вопрос в современных машинах), так что ваш диалог может задать только для JPEG качество, которое было бы менее неуклюжим.

Однако ... Качество JPEG не все, что есть в нем, и на самом деле существует множество опций (выборка хроматирования, являющаяся ИМХО, по крайней мере столь же важной, как качество), и для удовлетворения всех потребностей вы могли бы получить довольно сложный диалог. Таким образом, вы можете либо:

  • Просто сохраните настройки по умолчанию текущего пользователя (gimp_file_save())
  • Получить эти параметры из некоторого файла .ini (они менее склонны к изменениям, чем другие параметры вашего скрипта)
  • Не сохраняйте изображение и не позволяйте пользователю сохранять/экспортировать его по своему усмотрению (если это не скрипт пакетной обработки)
+0

отличный ответ - в моем случае это скрипт пакетной обработки для сохранения всех слоев. Если интересно, см. Src [on github] (https://github.com/gitbreaker222/export-all-layers-rl/blob/master/export-all-layers-rl.py) – Breaker222

+0

... и с _batch processing_ Я имею в виду _stack processing_. – Breaker222

+0

Можно использовать более простые GTK + Dialogs после первого, автоматически построенного, экрана - код в этом ответе можно использовать в качестве шаблона: http://stackoverflow.com/questions/8290740/simple-versatile-and -re Многоразовые-начальный диалог, иногда называют-к-в-вводом-ди – jsbueno

 Смежные вопросы

  • Нет связанных вопросов^_^