该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哎,做毕设又遇到问题了,先贴代码
import tkinter
plan1num = []
def targetcarset(ov,op):
window2 = tkinter.Tk()
window2.title('Parameters set of target car')
tkinter.Label(window2,text='Original velocity:').grid(row=1,column=1,sticky='W')
tkinter.Label(window2,text='Original position:').grid(row=2,column=1,sticky='W')
tkinter.Label(window2,text='Accelation plan:').grid(row=3,column=1,sticky='W')
#目标车辆初始速度设置
originalVelocity = tkinter.DoubleVar()
tkinter.Entry(window2,textvariable = originalVelocity,justify='right',width='23').grid(row=1,column=2)
originalVelocity.set(ov)
#目标车辆初始位置设置
originalPosition = tkinter.DoubleVar()
tkinter.Entry(window2,textvariable=originalPosition,justify='right',width='23').grid(row=2,column=2)
originalPosition.set(op)
#方案1的参数设置响应函数(先加速后匀速,参数有加速度、加速时间)
def plan1set():
set1 = tkinter.Tk()
set1.title('Parameters set of accelation plan 1')
tkinter.Label(set1,text='The value of accelation:').grid(row=1,column=1,sticky='W')
tkinter.Label(set1,text='Time of accelating:').grid(row=2,column=1,sticky='W')
#车辆加速度设置
accelation = tkinter.DoubleVar()
tkinter.Entry(set1,textvariable=accelation,justify='right').grid(row=1,column=2)
#车辆加速时间设置
accelatetime = tkinter.DoubleVar()
tkinter.Entry(set1,textvariable=accelatetime,justify='right').grid(row=2,column=2)
global plan1num
plan1ac = accelation.get()#方案1的加速度
plan1act = accelatetime.get()#方案1的加速时间
plan1num = [plan1ac,plan1act]
set1.mainloop()
#目标车辆加速度方案选择
v = tkinter.IntVar()
plan1 = tkinter.Radiobutton(window2,text=' ',variable=v,value=1,command=plan1set)
plan1.grid(row=4,column=1)
pic1 = tkinter.Canvas(window2,width=48,height=40)
pic1.grid(row=5,column=1)
pic1.create_line(0,40,24,10)
pic1.create_line(24,10,48,10)
tkinter.Button(window2,text='OK',command=window2.destroy).grid(row=8,column=2,sticky='E')
window2.mainloop()
return originalVelocity.get(),originalPosition.get(),v.get(),plan1num
if __name__ == '__main__':
print(targetcarset(0,0))
1.我想点击radiobutton就跳出设置窗口set1,所以我将command设为set1(),但是我在set1()中entry输入值却没有办法被保存,最后的window2返回的那个plan1num总是值为0的数组
2.我想给set1中的entry设置一个初始值并在一开始就显示出来,我用了accelation.set(),但是无法显示