Zipguy 2013-09-03 - You can find out my email address by clicking on Zipguy.
I was writing a program for my own purposes, called RF (or Rename Files Files v0.61a), and I ran into a common type of mistake I've been making frequently.
What did I do wrong? Good question. I wrote (what I thought) was a simple line of buttons, within a frame. I thought it would be easy to put some on the left, the middle, and the right. It turned out harder than I thought. Here's what it looked like:
Well there are lots of options, in fact, tons of options under buttons and pack. I was looking for the option I wanted, found a candidate, and added it. It did not work, because I'd picked the wrong option.
So I went back to the documentation, found another option, and tried it too.
What I should have done, is REMOVED the option I just added, that did not work.
It is a bad thing to have too many options, that don't do anything for you.
If you look at the code below, you'll see how I did try adding it to the other buttons also, hoping that that would work. Worse idea!
It seems way to simple, when it's done properly, although it may take a while to find the option, for which, you are looking.
So I just made a new rule for myself.
I hope this situation, and my explanation, helps others.
What did my code look like? It looked like this:proc ren_files { } { #----------------------------------------------------------------- # ren_files - allows you to rename a group of filenames (no extenstions) # and you get to use regexp to rename them (and un-rename them) #----------------------------------------------------------------- global _FR set _FR(status1) [pwd] set w .ren_files catch {destroy $w} toplevel $w wm title $w "$_FR(pgmNameFull), Rename... Geetings from the ZipGuy!" set f $w.tb frame $f -relief raised -borderwidth 1 pack $f\ -side top -fill x -pady 0m button $f.preview\ -text " Preview "\ -command "preview" -padx 0 -pady 0 pack $f.preview -side left -expand 1 button $f.reset\ -text " Reset "\ -command "reset" -padx 0 -pady 0 pack $f.reset -side left -expand 1 button $f.dorename\ -text " Do Rename! "\ -command "dorename" -padx 0 -pady 0 -fg {OliveDrab4} -bg gray99 # white sea green aquamarine indian red pack $f.dorename -side left -expand 1 button $f.undorename\ -text " UnDo Rename "\ -command "undorename" -padx 0 -pady 0 -fg {VioletRed3} -bg gray99 pack $f.undorename -side left -expand 1 button $f.exit1\ -text " Exit "\ -command "destroy $w" -padx 0 -pady 0 pack $f.exit1 -side right -expand 1 set q $w.mc frame $q -relief sunken -borderwidth 0 -width 450 pack $q -side top -fill x -pady 0m label $q.s1 \ -text "Above is messed up. ;(" \ -anchor w -justify left pack $q.s1 -side left -expand 1 -anchor w label $q.s2 \ -text "And Below looks great! :)" \ -anchor w -justify right pack $q.s2 -side right -expand 1 -anchor e set f $w.tc frame $f -relief raised -borderwidth 1 pack $f\ -side top -fill x -pady 0m button $f.preview\ -text " Preview "\ -command "preview" pack $f.preview -side left button $f.reset\ -text " Reset "\ -command "reset" pack $f.reset -side left button $f.dorename\ -text " Do Rename! "\ -command "dorename" -fg {OliveDrab4} -bg gray99 pack $f.dorename -side left -expand 1 button $f.undorename\ -text " UnDo Rename "\ -command "undorename" -fg {VioletRed3} -bg gray99 pack $f.undorename -side left button $f.exit1\ -text " Exit "\ -command "destroy $w" pack $f.exit1 -side right set f $w.text frame $f -relief raised -borderwidth 1 -width 700 pack $f \ -side top -fill x -pady 0m -fill both -expand yes set fontspec1 "{{Courier new} 10 bold}" set fontspec2 "{{Courier} 10 normal}" label $f.s1 \ -text "Cur. Directory: $_FR(status1)" \ -anchor w -justify left -font $fontspec1 pack $f.s1 -side top -expand 0 -anchor w set f $w.text.2 frame $f -relief sunken -borderwidth 0 -width 450 pack $f -side top -fill x -pady 0m label $f.s1 \ -text " Regexp: " \ -anchor w -justify left -font $fontspec1 pack $f.s1 -side left -expand 0 -anchor w -fill both entry $f.s1a \ -textvariable _FR(regexp1) \ -justify left -font $fontspec1 pack $f.s1a -side right -expand 1 -anchor w -fill both # add_files set w .ren_files } ;# END-proc
arjen - 2013-09-04 14:43:50
Usually when I want more control over the placement of the widgets, I use the grid geometry manager. Again loads of options you can try, but in my experience it is easier to find the right ones.