Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set the size of tk_messageBox?

I am using a tk_messageBox with a lage message, so I would like to configure the layout of that message dialog.

I am using tk_messageBox like this:

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

How can I set the width and height of tk_messageBox here?

Maybe there are some better alternatives for tk_messageBox?

like image 488
Vahagn Avatar asked Oct 15 '25 14:10

Vahagn


2 Answers

You can't set the size of a tk_messageBox (that's functionality which doesn't fit with the way those dialogs work on Windows and OSX). You can try putting some of the message into the -detail option, which usually uses a smaller font.

Or you can try looking in the file msgbox.tcl of your Tk installation for the Tcl code that implements the message box dialog on Unix/X11. Hint: on that platform only, tk_messageBox is really an alias for ::tk::MessageBox. The name of the widget created by that script depends on the -parent option, but if that's absent, it's .__tk__messagebox. Knowing that, you should be able to use clever event handling to configure the toplevel widget in question. But this is not a nice solution, and won't work on either Windows or OSX (when build for Aqua instead of X11).

like image 200
Donal Fellows Avatar answered Oct 19 '25 13:10

Donal Fellows


Is this what you had in mind?

import Tkinter
import tkMessageBox 

window = Tkinter.Tk()
window.option_add('*Dialog.msg.width', 50)
tkMessageBox.showinfo("header", "Hello, World!") 
like image 45
user1908430 Avatar answered Oct 19 '25 14:10

user1908430