如何设置tk_messageBox的大小?

时间:2011-01-09 23:50:02

标签: tcl tk tkmessagebox messagedialog

我正在使用带有大量邮件的tk_messageBox,因此我想配置该邮件对话框的布局。

我正在使用tk_messageBox这样:

set status [tk_messageBox -type yesno -icon warning -message "Here goes a text with 50 words"]

如何在此处设置tk_messageBox的宽度和高度?

也许tk_messageBox有更好的选择?

4 个答案:

答案 0 :(得分:3)

您无法设置tk_messageBox的大小(该功能不适合这些对话框在Windows和OSX上的工作方式)。您可以尝试将部分消息放入-detail选项中,该选项通常使用较小的字体。

或者您可以尝试在Tk安装的文件msgbox.tcl中查找在Unix / X11上实现消息框对话框的Tcl代码。提示:在该平台上tk_messageBox实际上是::tk::MessageBox的别名。该脚本创建的窗口小部件的名称取决于-parent选项,但如果不存在,则为.__tk__messagebox。知道这一点,您应该能够使用聪明的事件处理来配置有问题的toplevel小部件。但这不是一个很好的解决方案,并且无法在Windows或OSX上运行(当为Aqua而不是X11构建时)。

答案 1 :(得分:2)

这是你的想法吗?

import Tkinter
import tkMessageBox 

window = Tkinter.Tk()
window.option_add('*Dialog.msg.width', 50)
tkMessageBox.showinfo("header", "Hello, World!") 

答案 2 :(得分:0)

.option_add可能仅适用于linux操作系统,但是您可以控制字体,行换行和框的宽度:

root.option_add('*Dialog.msg.font', 'Helvetica 24')
root.master.option_add('*Dialog.msg.width', 34)
root.master.option_add("*Dialog.msg.wrapLength", "6i")

(其中“ 6i”是线的长度,以英寸为单位)

答案 3 :(得分:0)

我使用这些设置,但没有在 X11 以外的其他平台上测试

option add *Dialog.msg.wrapLength 10c 
option add *Dialog.dtl.wrapLength 10c

当然您可以尝试 10c(代表 10 厘米)以外的其他尺寸。