如何设置错误信息 window 大小?

How to set error message window size?

如何在弹窗错误中显示完整信息window?示例:

error "convergency_check_start should be larger than 3."

如果您增加错误 window 大小,您将不会收到完整的错误消息。消息被故意截断。您可以查看 Tk 库文件夹中的 bgerror.tcl,发现错误消息行被截断为 45 个字符。

您可以做的是覆盖 ::tk::dialog::error::bgerror 过程。由于完全重写它太乏味了,我建议按如下方式修补它:

#!/usr/bin/wish

set eproc ::tk::dialog::error::bgerror
auto_load $eproc
proc $eproc [info args $eproc] [string map {45 150} [info body $eproc]]

after idle {
    error "Quick brown fox jumped over the lazy dog. Quick brown fox jumped over the lazy dog."
}

此代码将 ::tk::dialog::error::bgerror 正文中的 45 替换为 150,并在 window 中显示了整个错误消息。如果没有 [string map ...],则只会立即显示大约一半的消息(单击 Details >> 按钮后,您仍然可以通过堆栈跟踪看到所有消息)。