2011-04-04 8 views
5

Uso PyDev en Eclipse con la integración de Qt. Con una herramienta externa, puedo crear una fuente de python en .py desde un archivo qt .ui. Esta es la herramienta externa: http://permalink.gmane.org/gmane.comp.python.xy.devel/413 El problema es que el archivo python .py generado tiene un nombre como MyGeneratedFile.ui.py. ¿Cómo puedo adaptar la herramienta externa para que tenga la extensión del archivo generado sin .ui así MyGeneratedFile.py?Herramienta externa de Eclipse para Qt .ui a .py con pyuic

Respuesta

10

Así parece que el problema se reduce a $ {} resource_loc, ya que esto le da el nombre de ruta completo /path/to/file/filename.ui - Sí, sí incluye el .ui por lo tanto, cuando se dice $ {} resource_loc .PY esto se traduce en /path/to/file/filename.ui.py

Así que probablemente la forma más sencilla de corregir este problema ya que no pude encontrar una manera para hacer que eclipse eliminar la extensión de archivo para mí estaba haciendo un script muy pequeño para hacer el trabajo.

Es posible que deba modificarlo ligeramente para que funcione en su instalación de 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 

hacen que sea ejecutable y la configuración de Eclipse que utilicé era mucho más simple:

  • PyUIC-> Principal-> Localización: /usr/bin/pyuicEclipse--- obviamente cambie esto a la suya
  • PyUIC-> Main-> Argumentos: $ {} resource_loc
  • PyUIC-> Actualizar - comprobar "Recursos Actualizar AL FINALIZAR EL CURSO"
  • PyUIC-> Build - desactive "Construir antes del lanzamiento"
  • PyUIC-> común - no hacer hacer la opción del archivo que se menciona en ese artículo

esto funciona en Linux, así que si estás en otro sistema operativo que puede necesitar alguna ligera modificación, pero espero que esto resuelve su problema :)

+0

Hmmm ... Me preocupaba que requiriera un script. No es que me importe usar uno, pero parece un truco para un IDE con todas las funciones. – MerseyViking

+2

Siempre puede [solicitar una característica variable] (http://wiki.eclipse.org/FAQ_How_do_I_report_a_bug_in_Eclipse%3F) de los desarrolladores de eclipse que genera el nombre de archivo sin la extensión. Pero eso puede llevar un tiempo si alguna vez se implementa. Vale la pena su tiempo, probablemente a la larga. - La última opción sería modificar el código fuente pyuic y hacer que elimine automáticamente cualquier extensión .ui que pueda estar allí. No lo recomiendo, ya que las actualizaciones te dejarán teniendo que volver a aplicar este parche cada vez. – platinummonkey

5

Con el interés de mantener la naturaleza multiplataforma de Eclipse, obtuve un equivalente de DOS del script bash de platinummonkey. No es tan robusta, pero hace el trabajo:

@echo off 
set pyUICCommand="pyuic" 
set fname=%1 
set fname=%fname:.ui=.py% 
%pyUICCommand% -o %fname% %1 
1

hay una solución fácil a este problema que no requiere de secuencias de comandos en absoluto.

  1. Instalar pathtools plug-in, ya sea a través de actualizaciones de Eclipse oa través de la Eclipse marketplace: una opción herramientas externas Configuraciones en Eclipse Configuración

  2. de la siguiente manera

En principal:

  1. Nombre: pyuic_run. (o algo similar)
  2. Ubicación: ruta al intérprete de Python (o pyside-uic.exe si usa esto)
  3. Argumentos: En la primera línea, ponga la ruta a pyuic.py (no es necesario si usa pyside-uic.exe como se verá arriba). Use comillas dobles alrededor de la ruta si contiene espacios. En la segunda línea ponen "$ {resource_loc}" (esto hará que el nombre del archivo de recursos)
  4. En actualización: Activar "recursos de actualización de una vez completado" (para ver el archivo final)
  5. En construcción: Desactivar " construir antes del lanzamiento" #no necesario en este caso
  6. En Medio Ambiente: No se cambia
  7. en común: Active la opción "Archivo" y establecer la ruta a ser: $ {parent-path}/$ {name-sans-extensión } .py

Tenga en cuenta que $ {parent-path} y $ {name-sans-extension} son argumentos disponibles a través del pathtool s plugin.

Si aplica esto y luego ejecuta la configuración en un archivo de recursos .ui, verá un nuevo archivo .py creado.

Cuestiones relacionadas