qt-light/examples/edit.scm

37 lines
800 B
Scheme
Raw Normal View History

(import qt-light
(chicken condition)
(chicken io)
(chicken port)
(chicken pretty-print))
(define a (qt:init))
(define w (qt:widget
(call-with-input-file "editor.ui"
(lambda (p) (read-string #f p)))))
(define e (qt:find w "editor"))
(qt:insert e "Select some Scheme code and\npress CTRL-E to evaluate it.\n")
(define action (qt:shortcut w "Ctrl+E"))
(qt:connect
action "triggered()"
(qt:receiver
(lambda ()
(let ((code (qt:selection e)))
(qt:insert e code)
(qt:insert
e
(with-output-to-string
(lambda ()
(handle-exceptions ex
(begin
(print-error-message ex)
(print-call-chain))
(pp (eval (with-input-from-string code read)))))))))))
(qt:add-action e action)
(qt:show w)
(qt:run)