【发布时间】:2018-03-09 12:18:07
【问题描述】:
我目前正在编写我的第一个闪亮的应用程序,但我在使用一些更微妙的用户界面功能时遇到了一些困难。我正在使用 tcltk 库导入一些简单的对话框,供用户选择本地目录和文件(应用程序只会在本地运行,因此我不会使用闪亮的 fileInput 命令)。这还具有不像 choose.dir 命令那样特定于操作系统的优点(有关更多讨论,请参阅R Windows OS choose.dir() File chooser won't open at working directory)。
但是,当我在 Windows 中工作时(我正在 Windows 10 上进行测试,尽管我在 Linux 中完成了大部分开发工作),我发现对 tkchooseDirectory 的调用只会打开闪亮应用程序后面的对话框,如果我正在运行一个闪亮的应用程序,或者如果我只是从那里的控制台调用它,则在 RStudio IDE 后面。这似乎不是一个新问题:http://r.789695.n4.nabble.com/tkchooseDirectory-opens-dialog-below-browser-window-td4729500.html 但我还没有看到任何解决方案。
对于我使用 RStudio 控制台的开发工作来说,这是一个小麻烦,但鉴于闪亮的应用程序最终将交付给客户端(国家机构),我真的不想因为隐藏对话框而加剧它们由应用程序。
感谢您提供的任何帮助!
[edit 1] 更多信息:似乎从 RStudio 控制台调用 tkchooseDirectory 时,只有第一次调用 tkchooseDirectory 会导致在应用程序后面显示一个对话框。随后的调用将对话框按预期放置到显示的顶部。此外,这种行为不会发生在 R for Windows GUI 中,而且似乎是 RStudio 及其相关产品所特有的。
[编辑 2] 其他 tcltk 库对话框似乎也遇到过类似问题:MessageBox in R
[edit 3] 最简单的最小示例是运行:
library(tcltk2)
tkchooseDirectory()
在 Windows 10 系统上的 RStudio 控制台中。
【问题讨论】:
-
您介意分享一个可重现的最小示例吗?
-
@erocoar 刚刚在问题中添加了一个最小示例。显然,这是特定于 Window 和特定于 RStudio 的,因此只能在那里重现。