使用网格的垂直线tkinter

tot*_*105 4 python tkinter

我正在尝试使用tkinter网格在两列之间创建一条垂直线。我一直在寻找方法来做,但是所有这些我都不需要,例如坐标。

from tkinter import *   
master = Tk()
player1 = "A"
player2 = "B"
from tkinter import *
Label(master, text="NAME", font=30).grid(row=0)
Label(master, text=player1, font=30).grid(row=1)
Label(master, text=player2, font=30).grid(row=2)
Label(master, text="SCORE", font=30).grid(column=2, row=0)
Run Code Online (Sandbox Code Playgroud)

我想在第1栏添加一条垂直线,有没有办法做到这一点?

Ara*_*Fey 6

您可以使用ttk.Separator小部件。

将以下内容添加到您的代码中:

import tkinter.ttk

tkinter.ttk.Separator(master, orient=VERTICAL).grid(column=1, row=0, rowspan=3, sticky='ns')
Run Code Online (Sandbox Code Playgroud)

rowspan=3是使分隔符跨越所有三行(标头,播放器1和播放器2)所必需的。在sticky='ns'那里可以将分隔符从窗口的顶部延伸到底部。默认情况下,分隔符只有1个像素长,因此,分隔符sticky几乎不可见。

结果预览:

预习

  • Python 3.6,Ubuntu 18.4:我必须使用 Sticky='nse'。如果未给出 e(ast),则分隔线穿过列的中间。 (2认同)