El SWT-Gui se ve muy bien. ¿Hay alguna manera fácil de usarlo en Jython?¿Es posible usar SWT desde Jython?
Respuesta
Dado que puede usar todas las clases de Java desde Jython, también es posible usar SWT.
Para el ejemplo, adaptado de un SWT snippet, asegúrese de que tiene el frasco SWT en su CLASSPATH:
import org.eclipse.swt as swt
import org.eclipse.swt.widgets as widgets
import org.eclipse.swt.layout as layout
result = None
display = widgets.Display()
shell = widgets.Shell(display)
shell.pack()
shell.open()
dialog = widgets.Shell(shell, swt.SWT.DIALOG_TRIM | swt.SWT.APPLICATION_MODAL)
dialog.setLayout(layout.RowLayout())
ok = widgets.Button(dialog, swt.SWT.PUSH)
ok.setText ("OK")
cancel = widgets.Button(dialog, swt.SWT.PUSH);
cancel.setText("Cancel");
class MyListener(widgets.Listener):
def handleEvent(self, event):
global result
result = event.widget == ok
dialog.close()
listener = MyListener()
ok.addListener(swt.SWT.Selection, listener)
cancel.addListener(swt.SWT.Selection, listener)
dialog.pack()
dialog.open()
while not dialog.isDisposed():
if not display.readAndDispatch():
display.sleep()
print "Result:", result
display.dispose()
En realidad, no hay necesidad de un módulo especial. This talk por Sean McGrath contiene un ejemplo simple de una GUI de Jython/SWT.
Transparencia 11 de la charla comienza con:
"""
Simple SWT Example
Sean McGrath
"""
from org.eclipse.swt.events import *
from org.eclipse.swt.graphics import *
from org.eclipse.swt.layout import *
from org.eclipse.swt.widgets import *
from org.eclipse.swt.layout.GridData import *
from org.eclipse.swt import *
Muestra que SWT es directamente utilizable a partir de Jython. El full example está justo allí en el sitio de Sean.
a gimel: ¡Gracias! – Natascha
Jython tiene algunas otras sutilezas que hacen que el código sea más limpio.
Jython traduce automagicamente captadores & set en propiedades públicas para que
ok.setText ("OK")
se convierte simplemente en
ok.text = 'OK'
Luego, puede suministrar como argumentos el nombre del constructor. Jython también maneja la creación de objetos de escucha para los controladores de eventos:
def handleEvent(self, event):
global result
result = event.widget == ok
dialog.close()
ok = widgets.Button(dialog, swt.SWT.PUSH
text='OK',
widgetSelected=handleEvent)
cancel = widgets.Button(dialog, swt.SWT.PUSH
text='Cancel',
widgetSelected=handleEvent)
La forma "ok.text = 'Ok'" es más idiomática que Jython (es decir, es más pitonica, se ve y se siente más como código de Python) –
- 1. ¿Es posible usar re2 desde Python?
- 2. Controlando stdout/stderr desde Jython
- 3. ¿Es posible usar scalap desde un script scala?
- 4. ¿Es posible usar rieles image_tag desde dentro de un modelo?
- 5. Invocar Jython desde Python (o viceversa)
- 6. ¿Por qué usar Jython cuando solo podías usar Java?
- 7. ¿Es posible usar "instaladores exe" con pip?
- 8. ¿Es posible usar OCaml en modo incrustado?
- 9. jython multithreading
- 10. ¿Usando Jython con Django?
- 11. SWT y AWT, ¿cuál es la diferencia?
- 12. ¿Es posible usar XMLHttpRequest en Dominios
- 13. jython syntaxerror?
- 14. Aleatoriedad en Jython
- 15. ¿Es posible crear clases Java desde JavaDoc?
- 16. ¿Es posible requerir PyQt desde setuptools setup.py?
- 17. JFreeChart con SWT
- 18. Crear byte [] en Jython
- 19. ¿Cómo se ejecutan guiones jython multiproceso desde Java?
- 20. ¿Qué es Jython y es útil en absoluto?
- 21. ¿es posible usar xs: union para complexTypes?
- 22. ¿Es posible usar Twisted with IPv6?
- 23. ¿es posible usar Eigen con c?
- 24. ¿Es posible usar Django con Qooxdoo framework?
- 25. ¿Es posible usar UDP en Flash/ActionScript?
- 26. ¿Es posible usar un "argv" Unicode?
- 27. ¿Es posible usar "bigint" condicionalmente con Perl?
- 28. ¿es posible usar expresiones regulares en C++?
- 29. ¿Es posible usar Xtext sin eclipse?
- 30. ¿Es posible usar vim con el mouse
Gracias Torsten, parece muy fácil. (Lo siento, no puedo votar ahora) – Natascha
Ah, no pasará mucho tiempo hasta que puedas hacer eso. –