2011-11-22 2 views
0

내 창에서 두 프레임 사이에 구분 기호를 넣으려고합니다. 그걸 위해서 ttk::separator을 사용하고 싶습니다. 여기,ttk :: separator가 표시되지 않음

proc create_layout_changing_frame {} { 
    set ch_frm ".prop_menu.main_frame.changing_frame" 
    global _PROP 
    global _DB 
    global _prop_attr 
    set _frame_row 0 

    set _size_text_lbl  20 
    set _size_full_entry 85 
    set _size_brw_button 3 

    # The layout file frame 
    set frm [frame $ch_frm.layout_file] 
    set lbl [label $ch_frm.layout_file.label -text "Layout file:" -width $_size_text_lbl] 
    set entr [entry $ch_frm.layout_file.entry -textvariable _prop_attr(layout_file) -width [expr $_size_full_entry-$_size_brw_button]] 
    set browse [button $ch_frm.layout_file.browse -image icon_browse -command {get_layout_file}] 
    set sep  [label $ch_frm.layout_file.blank -text ""] 

    grid $lbl  -row 1 -column 1 -sticky nsw 
    grid $entr  -row 1 -column 2 -sticky nse 
    grid $browse -row 1 -column 3 -sticky nsw 
    grid $sep  -row 2 -column 1 -sticky nsw -columnspan 3 
    grid $frm  -row [incr _frame_row] -column 1 -sticky nsew 

    # The input instance frame 
    # if not root - root isn't driven 
    if {$_DB(blocks,$_prop_attr(block),father) != -1} { 
     set frm  [frame $ch_frm.input_instance] 
     set lbl  [label $ch_frm.input_instance.label -text "Input Instance:" -width $_size_text_lbl] 
     set warn [label $ch_frm.input_instance.warn  -text "" -fg "red"] 
     set entr [entry $ch_frm.input_instance.entry -textvariable _prop_attr(input_instance) -width $_size_full_entry -validate focusout -vcmd {check_input_instance}] 

     grid $lbl -row 1 -column 1 -sticky nsw 
     grid $entr -row 1 -column 2 -sticky nse 
     grid $warn -row 2 -column 1 -sticky nsew -columnspan 2 

     grid $frm -row [incr _frame_row] -column 1 -sticky nsew 
    } 

    # The output instance frame 
    set frm [frame $ch_frm.output_instance] 
    set lbl [label $ch_frm.output_instance.label -text "Output Instances:" -width $_size_text_lbl] 
    set warn [label $ch_frm.output_instance.warn -text "" -fg "red"] 
    set entr [entry $ch_frm.output_instance.entry -textvariable _prop_attr(output_instance) -width $_size_full_entry -validate focusout -vcmd {check_output_instance}] 

    grid $lbl -row 1 -column 1 -sticky nswe 
    grid $entr -row 1 -column 2 -sticky nse 
    grid $warn -row 2 -column 1 -sticky nsew -columnspan 2 

    grid $frm -row [incr _frame_row] -column 1 -sticky nsew 


    # The driving instance frame 
    ... There is a full definition of a frame here, it's a little complicated so I don't put it, But it works fine... 


    # The power and ground pattern frame 
    set sep  [ttk::separator $ch_frm.separator1 -orient horizontal] 
    set frm [frame $ch_frm.pwd_gnd_pattern] 
    set lblpow [label $ch_frm.pwd_gnd_pattern.powlbl -text "Power Pattern:" -width $_size_text_lbl] 
    set entrpow [entry $ch_frm.pwd_gnd_pattern.powentr -textvariable _prop_attr(power_pattern) -width $_size_full_entry] 
    set sep [label $ch_frm.pwd_gnd_pattern.blank -text ""] 
    set lblgnd [label $ch_frm.pwd_gnd_pattern.gndlbl -text "Ground Pattern:" -width $_size_text_lbl] 
    set entrgnd [entry $ch_frm.pwd_gnd_pattern.gndentr -textvariable _prop_attr(ground_pattern) -width $_size_full_entry] 

    grid $lblpow -row 1 -column 1 -sticky nsw 
    grid $entrpow -row 1 -column 2 -sticky nse 
    grid $sep  -row 2 -column 1 -sticky nswe -columnspan 2 
    grid $lblgnd -row 3 -column 1 -sticky nsw 
    grid $entrgnd -row 3 -column 2 -sticky nse 

    grid $sep  -row [incr _frame_row] -column 1 -sticky ew  -pady 4 
    grid $frm  -row [incr _frame_row] -column 1 -sticky nsew 

    make_all_layout_checks 
} 

분리 창에 전혀 표시되지 않습니다 사진입니다 :

내 코드입니다. 맨 위는 어떻게 보이는지, 아래쪽에는 분리 기호를 넣을 장소가 빨간색 원으로 표시됩니다.

또한 주어진 코드는 그루브 된 테두리 안에있는 프레임 만 처리하며 다른 모든 요소는 다른 곳에서 처리됩니다. red circle marks the spot

어디에 문제가 있습니까?

답변

1

몇 줄 아래 변수 sep에 다른 위젯 (label $ch_frm.pwd_gnd_pattern.blank)의 이름을 저장합니다. 그러면 구분 기호가 항상 표시되지 않습니다.

+0

그건 어리석은 실수입니다. 고마워요. – SIMEL

+0

@Ilya : 괜찮습니다. 모두는이 순간을가집니다. (나는 충분하지만, 코드를 확인하기 전에 그것들을 발견하는 것이 더 낫다 ...) –