【问题标题】:tk_messageBox is showing erroneous display in grid view, but ok in packtk_messageBox 在网格视图中显示错误,但在包中正常
【发布时间】:2019-12-10 06:47:10
【问题描述】:

我正在尝试在 TCL/TK 中显示一个消息框,它应该被关闭以在父窗口中执行任何操作。当我执行下面的代码时,即使清除了消息框,文本框也会进入“禁用”状态。

wm title . "Message Box Demo"

tk::text .t0

grid .t0 -column 0 -row 1 -columnspan 2

tk_messageBox -type okcancel  -message "Press Ok to confirm" \
    -title "Update V 3.6" -icon "info"

如果我引入 TopLevel 以在 messageBox 中包含“父”窗口,它会打开一个新窗口作为顶级窗口并允许访问文本框。

wm title . "Message Box Demo"

toplevel .top1
tk::text .t0

grid .t0 -column 0 -row 1 -columnspan 2

tk_messageBox -type okcancel -parent .top1 -message "Press Ok to confirm" \
    -title "Update V 3.6" -icon "info"

有人可以帮我找出问题所在吗?

【问题讨论】:

  • 无法重新创建。在这两种情况下,tk_messageBox 都会抓取并阻止访问另一个窗口。
  • @BradLanam,也许操作系统应用程序兼容性?我在 Windows 中使用 Komodo。
  • @BradLanam,是的,行为似乎有所不同。但是即使在 Linux 中,第二个代码脚本(带有父命令)也会打开一个空的“top1”窗口。你能告诉我如何避免这种情况吗?

标签: grid tcl tk toplevel tkmessagebox


【解决方案1】:

在 Windows 上重新创建。这似乎是一个错误,我已经为它开了一张票。

你可以这样做:

 toplevel .top1
 wm withdraw .top1

隐藏 .top1 窗口。

【讨论】:

  • 谢谢你...这是一个很好的解决方法。我想将控件保留在消息框中,直到完成选择。是否可以?因为如果用户选择了窗口屏幕,对话框就会消失,如果要全屏的话,就没有办法带消息框了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多