我目前正在开发一个涉及通过CFFI调用QT GUI的Lisp项目。我们没有使用CommonQT,而是使用C ++构建GUI,并通过CFFI访问我们创建的库来调用它。当GUI开始时,目标是控制Lisp调用中发生的事情。可悲的是,QT窃取了主线程,我们启动GUI的repl窗口现在没用了。我们通过让QT为我们创建一个可以接受REPL命令并显示REPL结果的窗口来解决这个问题。它工作正常,但它很尴尬,能够保留原始终端repl肯定会很好。 GUI部分运行得很好,因为我正在尝试将其拆分为自己的线程,这将是让我的终端恢复的最佳时机。有任何想法吗?新线程和某些流重定向的某种组合?
答案 0 :(得分:1)
您可能想尝试bourdeaux-threads,例如:
(defun start ()
(bt:make-thread
#'(lambda ()
(start-my-repl)))
(start-qt-app))