1. 引用区别
两者不一样,import*可能和其他引用冲突导致引用错误
我在编程时和sympy库冲突了,因为我用了
from sympy import *
import tkinter
root = tkinter.TK() # 初始化一个实例窗口
from tkinter import *
root = TK() # 初始化一个实例窗口
2. Entry输入框和Label文本显示
tkinter布局共有三种:place,pack和grid。
pack()直接使用
grid为网格化布局,和pack()冲突不能同用;
place直接给出(x坐标,y坐标,控件哪个角放到该位置)
Entry设置默认内容:
# grid和pack不能同用
tkinter.Label(root, text='协同区:', font=('楷体', 14)).place(x=25, y=50, anchor='nw')
input_L1 = tkinter.Entry(root, width=8, font=8) # 文本框
input_L1.delete(0, "end") # 清除输入框原来内容
input_L1.insert(0, "450") # 设置文本输入框默认值
input_L1.place(x=105, y=50, anchor='nw') # nw表示控件左上角放到此位置
3. Canvas画布绘图
lane = tkinter.Canvas(root, width=700, height=480) # 不加bg就是没有颜色
# lane = tkinter.Canvas(root, width=500, height=160, bg='white')
lane.place(x=20, y=110, anchor='nw')
lane.create_text(25, 40, text="专用道", font=('楷体', 12)) # 坐标为相对画布的位置
lane.create_text(25, 80, text="混合流", font=('楷体', 12))
# 画出两排方格
for i in range(10):
# 其每个格子的大小为60 * 40, (x1, y1)(x2, y2)
for j in range(2):
x1 = 50 + cell_width * i # 起始坐标50
y1 = 20 + cell_height * j
x2 = 50 + cell_width + cell_width * i
y2 = 20 + cell_height + cell_height * j # 20个像素为距离画布顶端距离
# (x1,y1)和(x2,y2)分别为矩形的左上角和右下角
lane.create_rectangle(x1, y1, x2, y2) # 画矩形框,没上底色 (fill="white"上底色)
r5 = lane.create_line(x1, y1, x2, y2, width=2) #(x1,y1)(x2,y2)为直线两端的端点