Eclipse внешний инструмент для Qt .ui в .py с pyuic - PullRequest
5 голосов
/ 04 апреля 2011

Я использую PyDev в Eclipse с интеграцией Qt.С помощью внешнего инструмента я могу создать исходный код Python в .py из файла qt .ui.Это внешний инструмент: http://permalink.gmane.org/gmane.comp.python.xy.devel/413 Проблема в том, что сгенерированный Python-файл .py имеет имя, подобное MyGeneratedFile.ui.py.Как я могу адаптировать внешний инструмент, чтобы иметь расширение сгенерированного файла без .ui, таким образом, MyGeneratedFile.py?

Ответы [ 3 ]

10 голосов
/ 21 июня 2011

Так что, похоже, проблема сводится к $ {resource_loc} , так как это дает вам полное имя пути / path / to / file / filename.ui - Да, этодействительно включает .ui , следовательно, когда вы говорите $ {resource_loc} .py , это переводится в / path / to / file / filename.ui.py

Так что, возможно, самый простой способ исправить эту проблему, поскольку я не смог найти способ заставить eclipse удалить расширение файла, для меня был очень маленький скрипт для работы.

Возможно, вам потребуетсяслегка измените его, чтобы он работал для вашей установки pyuic.

/ usr / bin / pyuicEclipse:

#!/bin/bash
pyUICCommand="/usr/bin/pyuic" # change this per your installation
x=$1
f=`basename $x`
d=`dirname $x`
fNoUI="`echo $f | sed 's/\.ui$//'`" # removes .ui extension from file basename
$pyUICCommand -o ${d}/${fNoUI}.py $x

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

  • PyUIC-> Main-> Location: / usr / bin / pyuicEclipse --- очевидно, измените это на ваше
  • PyUIC-> Main-> Arguments: $ {resource_loc}
  • PyUIC-> Обновить - установите флажок «Обновить ресурсы после завершения»
  • PyUIC-> Build - снимите флажок "Построить перед запуском"
  • PyUIC-> Common - не использовать опцию File, которая упоминалась в этой статье

Это работает на Linux, поэтому, если вы работаете на другой ОС, возможно, потребуется небольшая модификация, но я надеюсь, что это решит вашу проблему:)

5 голосов
/ 21 июня 2011

В интересах сохранения кроссплатформенности Eclipse я выбрал DOS-эквивалент bash-скрипта platinummonkey.Это не совсем надежно, но делает свою работу:

@echo off
set pyUICCommand="pyuic"
set fname=%1
set fname=%fname:.ui=.py%
%pyUICCommand% -o %fname% %1
2 голосов
/ 15 мая 2012

Существует простое решение этой проблемы, которое вообще не требует сценариев.

  1. Установка pathtools плагин либо через обновления Eclipse, либо через Eclipsemarketplace :

  2. Настройте параметр конфигурации внешних инструментов в Eclipse следующим образом

In Main:

  1. Имя: pyuic_run.(или что-то подобное)
  2. Местоположение: путь к интерпретатору python (или pyside-uic.exe, если вы используете это)
  3. Аргументы: в первой строке укажите путь к pyuic.py(не требуется, если вы используете pyside-uic.exe, как будет выше).Используйте двойные кавычки вокруг пути, если он содержит пробелы.Во второй строке поместите «$ {resource_loc}» (это установит имя файла ресурса)
  4. In refresh: включить «Обновить ресурсы после завершения» (чтобы увидеть окончательный файл)
  5. В сборке: отключить «Сборку перед запуском» # здесь не нужно
  6. В среде: без изменений
  7. В общем: активировать опцию «Файл» и задать путь: $ {parent-path} / $ {name-sans-extension} .py

Обратите внимание, что $ {parent-path} и ​​$ {name-sans-extension} являются аргументами, доступными через плагин pathtools.

Если вы примените это, а затем запустите настройку файла ресурсов .ui, вы увидите новый файл .py.

...