TK
Frame, Text, Scrollbar, Scale
Button, Entry, Label
Widgets 1 : Button, Entry, Label
Three things need to be said about widgets. First is the path. This I have explained earlier. The paths of all widgets must be unique and will be used when ever that widget needs to be accessed. Second is the options. Each widget has some options which can be used to configure it. This is usually done when the widget is declared, but it can be done afterward also. The final thing is commands. Each widget has some commands which also can be used to configure it or make it do some thing.
But before we begin, we need to know a little about the pack command. I have explained this earlier but just doing it one more time so that you don't have to push the back button. Pack is a geometry manager. Another geometry manager is 'grid' and I like it better - we will explore that latter. Pack is much more simpler than grid.
The line pack .hello tells the interpreter to pack the widget called ".hello".
If the command was pack .hello -in .frame, the widget .hello will be packed in another widget called .frame. In the absence of the '-in' option, the specified widget is put in the main window.
button
This will make a button. It can be configured to execute some code when pushed. This will usually refer to a function so when the button is pushed, the function will run. An button is shown using HTML below.
-text "TEXT" | TEXT will be the text displayed on the button |
-command "CODE" | CODE will be the code that is executed when the button is pushed |
proc push_button {} {
... whatever ...
}
button .but -text "Push Me" -command "push_button"
pack .but
entry
An entry is a widget that displays a one-line text string and allows the user to input and edit text in it. When an entry has the input focus it displays an insertion cursor to indicate where new characters will be inserted. An entry element is shown using HTML.
-width NUMBER | Width of the input field. NUMBER should be an integer. |
-textvariable VARIABLE | The contents of the variable VARIABLE will be displayed in the widget. If the text in the widget is edited, the variable will be edited automatically. VARIABLE should be given without a preceding '$' sign. |
-state STATE | The state of the input field. It can be normal, disabled, or readonly. If it is readonly the text can't be edited. |
Syntax | Description | Example |
path get | The text inside input field can be taken by this command | set name [.ent get] |
path delete FIRST ?LAST? | Delete one or more elements of the entry. FIRST is the index of the first character to delete, and LAST is the index of the character just after the last one to delete. If last isn't specified it defaults to FIRST+1, i.e. a single character is deleted. This command returns an empty string. | .ent delete 0 end |
path insert index STRING | Insert the characters of STRING just before the character indicated by index. Index is 0 for the first character. The word "end" can be used for the last character | .ent insert end "Hello" |
Example
proc push_button {} {
.ent insert end "Hello"
}
entry .ent
button .but -text "Push Me" -command "push_button"
pack .ent
pack .but
label
This widget display text messages.
Example
proc push_button {} {
.ent insert 0 "Hello "
}
label .lab -text "Enter name:"
entry .ent
button .but -text "Push Me" -command "push_button"
pack .lab
pack .ent
pack .but