垂直分隔符无法正常显示

时间:2015-03-01 15:59:30

标签: tkinter ttk

在粘贴中可能很难看到,但第二个垂直分隔符非常小。

我已经让水平分隔符工作和拉伸到我想要的范围,但垂直似乎不起作用。

此外,是否可以跨越垂直和水平分隔符,以便您可以制作可见网格?

enter image description here

import tkinter as TK
from tkinter import ttk
import time

class GUI( object ):
    def __init__( self ):
        self.root = TK.Tk()
        self.root.title( "test" )

        self.paddingFrame = TK.Frame( self.root )
        self.paddingFrame.config(pady="5")
        self.paddingFrame.grid(row=0, column=3, sticky=TK.N)

        self.containFrame = TK.Frame( self.root )
        self.containFrame.grid(row=1, column=0, sticky=TK.W+TK.E, 
                               pady="5")

        self._horizontal_separators = []
        self._vertical_separators = []
        self._create_separators()

        self._update_button = TK.Button(
            self.containFrame, 
            text="Update",
            command = self.update_labels )
        self._update_button.configure(
            width="6", 
            padx="20", 
            pady="10" )
        self._update_button.grid(
            row=9, 
            column=0, 
            sticky=TK.E+TK.S )

    def _create_horizontal_separators( self ):
        for row in [ 1, 3 ]:
            sep = ttk.Separator( self.containFrame, 
                                 orient=TK.HORIZONTAL )
            sep.grid( row=row, columnspan=9, sticky="ew" )
            self._horizontal_separators.append( sep )

    def _create_vertical_separators( self ):
        for col in [ 2,3 ]:
            sep = ttk.Separator( self.containFrame, 
                                 orient=TK.VERTICAL )
            sep.grid( rowspan=10, column=col, sticky="sn")
            self._vertical_separators.append( sep )

    def _create_separators( self ):
        #self._create_horizontal_separators()
        self._create_vertical_separators()

    def update_labels(self):
        pass

    def start( self ):
        self.root.mainloop()

if __name__ == "__main__":

    gui = GUI()
    gui.start()

1 个答案:

答案 0 :(得分:2)

发布的代码的问题是除了一行之外的所有行都有很高的高度。正如我所料,我正在为这一行看到一个垂直分隔符。

至于创建可见网格,这是现有问题的副本:Show grid layout cells in tkinter。最简单的解决方案是为背景框架提供纯色(如黑色),并在行和列之间使用填充,以便显示背景。