Действительно ли возможно использовать SWT от Jython?

любой символ обратной косой черты \ необходимо удвоить \\. Это все.

Обратная косая черта - это то, что называется escape-символом - анализатор говорит: «то, что следует за этим, обрабатывается специально». Чаще всего это для вкладки \t или новой строки \n.

Если вы хотите иметь обратную косую черту буквально, вы должны использовать двойной \\.

11
задан Torsten Marek 5 February 2009 в 16:29
поделиться

3 ответа

Учитывая, что можно использовать все классы Java из Jython, также возможно использовать SWT.

Для примера, адаптированного от отрывка SWT, удостоверьтесь, что у Вас есть SWT, раздражают Ваш ПУТЬ К КЛАССУ:

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()
18
ответ дан 3 December 2019 в 02:30
поделиться

Jython имеет несколько других тонкостей, который делает инструмент для очистки кода.

Jython автоволшебно переводит методы считывания и методы set в общественные собственности так, чтобы

ok.setText ("OK")

становится просто

ok.text = 'OK'

Можно затем предоставить их как параметры, передаваемые по имени конструктору. Jython также обрабатывает объекты прослушивателя создания для Ваших обработчиков событий:

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)
9
ответ дан 3 December 2019 в 02:30
поделиться

На самом деле нет никакой потребности в специальном модуле. Этот разговор Sean McGrath содержит простой пример GUI Jython/SWT.

Скользите 11 из разговора начинается:

"""
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 *

Это показывает, что SWT непосредственно применим от Jython. Полный пример тут же на сайте Sean.

5
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: