如何在不使用Canvas的情况下绘制垂直线?

时间:2018-02-09 07:55:38

标签: python python-3.x tkinter line

我正在使用python 3并尝试在tkinter中绘制一条垂直线,但我无法使用Canvas找到任何绘制方式。我用Google搜索但什么也没找到。

这是我的代码:

from tkinter import *
master = Tk()
master.geometry('200x346+200+100')
mainloop()

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

  

我正在使用python 3并试图在tkinter中绘制一条垂直线但是我找不到任何方法来绘制而不使用Canvas。

不,除了画布之外,没有通用的方法在tkinter中绘制。

如果您只需要一条垂直线作为分隔符,则可以使用一个像素宽的帧。或者,使用ttk.Separator小部件。

答案 1 :(得分:0)

这是一个直角三角形,其非对角线用Frame s:

绘制
try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
except ImportError:
    import Tkinter as tk


if __name__ == '__main__':
    root = tk.Tk()
    ratio = 16
    vertical_edge_len = 5
    horizontal_edge_len = 12
    hypotenuse = tk.Canvas(root, highlightthickness=0)
    hypotenuse.create_line(0, 0, ratio * horizontal_edge_len,
                                    ratio * vertical_edge_len, fill='green')
    vertical = tk.Frame(root, bg='red', height=ratio * vertical_edge_len,
                                                                    width=1)
    horizontal = tk.Frame(root, bg='blue', height=1,
                                            width=ratio * horizontal_edge_len)
    vertical.place(x=0, y=0)
    horizontal.place(x=0, y=ratio * vertical_edge_len)
    hypotenuse.place(x=0, y=0)
    root.mainloop()