Vyit_ 2016-12-24 02:36 采纳率: 0%
浏览 1189
已结题

初学者的程序,做了一个简单的图形界面,请问错误出在哪里啊?

#!/usr/bin/python

-*- coding: UTF-8 -*-

from Tkinter import *

def Price_get(dic,a):

# for key in dic:
#     if key==a:
#         c=d[key]
#         return c;

def get_in(entry,argu):#定义在文本框中输入数字的函数
entry.insert(END,argu)
def Pc_calc():

root = Tk();
root.title("PC_CALC");
#将各个硬件及其价格存入字典
Cpu_dic={'i3-6100': 628, 'i3-6300' :1049 ,'i5-4590': 1148 ,'i5-4690k' :1599 ,'i5-6400': 1035 ,'i5-6500' :1130 ,'i5-6600': 1285 ,'i5-6600k': 1400, 'i7-4790': 1810 ,'i7-4790k': 2049 ,
'i7-6700': 1820, 'i7-6700k': 2040 ,'e3-1231v3': 1415 ,'i7-6800k' :2799, 'i7-6950x': 12888}
Gpu_dic={'gtx1080' :6199 ,'gtx1070': 3599 ,'gtx1060': 2399, 'gtx1050ti': 1299, 'gtx1050' :1099, 'gtx980ti' :5600, 'gtx980' :3799, 'gtx970' :2499, 'gtx960': 1699 ,'gtx950': 1199 ,'gtxtitan' :8099, 'gtx750ti' :899 ,'rx480': 2599, 'rx470': 1499, 'rx470d': 1399, 'rx460': 1099}
Disk_dic={'1T' :329 ,'2T': 425, '3T': 575};
Memory_dic={'8G' :399, '16G':709, '32G' :1559};
Mainboard_dic={'B85' :599 ,'B150' :999 ,'Z170' :1499, 'X99' :5999, 'H110': 619, 'H170' :999};
#创建5个label组件来显示cpu、显卡、内存、硬盘和主板
Lb_1=Label(root,text="CPU  ").grid(row=0,sticky=W);#f放置在0行0列,向左对齐
Lb_2=Label(root,text="显卡  ").grid(row=1,sticky=W);
Lb_3=Label(root,text="硬盘  ").grid(row=2,sticky=W);
Lb_4=Label(root,text="内存  ").grid(row=3,sticky=W);
Lb_5=Label(root,text="主板  ").grid(row=4,sticky=W);
Lb_6=Label(root,text="总计  ").grid(row=5,sticky=W);
#创建让用户输入型号的文本框
text1=StringVar()
text2=StringVar()
text3=StringVar()
text4=StringVar()
text5=StringVar()
e1 = Entry(root,textvariable=text1).grid(row=0,column=2,columnspan=2,sticky=E);Cpu=text1.get();
for key in Cpu_dic:
    if key==Cpu:
        a=d[key];
e2 = Entry(root,textvariable=text2).grid(row=1,column=2,columnspan=2,sticky=E);Gpu=text2.get();
for key in Gpu_dic:
    if key==Gpu:
        b=d[key];
e3 = Entry(root,textvariable=text3).grid(row=2,column=2,columnspan=2,sticky=E);Disk=text3.get();
for key in Disk_dic:
    if key==Disk:
        c=d[key];
e4 = Entry(root,textvariable=text4).grid(row=3,column=2,columnspan=2,sticky=E);Memory=text4.get();
for key in Memory_dic:
    if key==Memory:
        d=d[key];
e5 = Entry(root,textvariable=text5).grid(row=4,column=2,columnspan=2,sticky=E);Mainboard=text5.get();
for key in Mainboard_dic:
    if key==Mainboard:
        e=d[key];
e6 = Entry(root).grid(row=5,column=2,columnspan=2,sticky=E)
price=a+b+c+d+e;


    #创建两个按钮
button1 = Button(root, text='Calc it!',command=lambda:get_in(e6,price));
button1.grid(row=6, column=2,sticky=W);

button2 = Button(root, text='Exit it!');
button2.grid(row=6, column=3,sticky=W);


    #进入消息循环;
root.mainloop()

if name=='__main__':
Pc_calc()

  • 写回答

2条回答 默认 最新

  • Vyit_ 2016-12-24 02:40
    关注

    错误提示
    Traceback (most recent call last):
    File "PC_calc", line 72, in
    Pc_calc()
    File "PC_calc", line 58, in Pc_calc
    price=a+b+c+d+e;
    UnboundLocalError: local variable 'a' referenced before assignment

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料