首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使对话框函数工作

如何使对话框函数工作
EN

Stack Overflow用户
提问于 2018-01-03 13:12:53
回答 1查看 53关注 0票数 0

我想打开一个对话框,并在对话框返回ok后处理数据。问题是:在提交对话框后不会调用success-fn。这与按钮中的侦听器有关。如果没有侦听器调用connectDialog,则调用:success-fn的函数。

代码:

代码语言:javascript
复制
(def dbConnectionForm
  (grid-panel :columns 2
              :items ["Database Driver" (combobox :id :dbdriver :model ["postgresql" "mysql"])
                      "Database"        (text :id :dbname :text "postgres")
                      "Port"            (text :id :dbport :text "32768")
                      "Username"        (text :id :username :text "postgres")
                      "Password"        (text :id :password :text "postgres")]))

(defn connectionDialog []
  (print (-> (dialog
    :content dbConnectionForm
    :option-type :ok-cancel
    :type :plain
    :success-fn (fn [e] (print (value dbConnectionForm)))
    )pack! show!))
  )

(def connectButton (button :text "Connect"
                           :listen [:action (fn [e] (connectionDialog))]))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-03 14:17:40

这可能是因为您正在使用print。将其更改为println,或在print之后的回调中添加对flush的调用。

如果(value dbConnectionForm)返回一个很小的值(比如当转换为字符串时只有几个字符),并且不包含换行符,它可能不会提示外部流自动刷新,因此文本被卡在缓冲区中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48078108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档