我正在使用python和tkinter创建GUI这会提示用户他的电脑的Mac地址并要求输入代码
我用来检索MAc地址的Python片段是:
import uuid
def get_mac():
mac_num = hex(uuid.getnode()).replace('0x', '').upper()
mac = ''.join(mac_num[i : i + 2] for i in range(0, 11, 2))
return mac
x= get_mac()
print x
我还制作了一个包含两个字段的gui,如下所示
然而,当我执行python片段时,mac地址显示在python gui外部和python shell中,如何让mac地址出现在GUi本身提供的空间中
以下是gui的代码:
from Tkinter import *
from ttk import *
root =Tk()
def show_form():
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)
b = Button(bottomFrame,text="ACTIVATE",command=lambda: show_call_back(root))
b1 = Button(bottomFrame, text="TRIM")
b2 = Button(bottomFrame, text="OVERLAY")
b3 = Button(bottomFrame, text="MERGE")
b.pack(side=RIGHT,padx=8,pady=26)
b1.pack(side=LEFT, padx=8, pady=26)
b1.config(state='disabled')
b2.pack(side=LEFT, padx=8, pady=26)
b2.config(state='disabled')
b3.pack(side=LEFT, padx=8, pady=26)
b3.config(state='disabled')
root.mainloop()
def show_call_back(parent):
top = Toplevel(parent)
top.geometry("250x200+600+250")
top.resizable(width=False, height=False)
top.title("Activation")
Label(top, text="Mac Address:",).grid(row=0, sticky=W, padx=4)
Label(top, text="Code").grid(row=1, sticky=W, padx=4)
Entry(top).grid(row=1, column=1, sticky=E, pady=4)
Button(top, text="Submit", command=top.destroy).grid(row=2, column=1)
show_form()
root.mainloop()
答案 0 :(得分:0)
在您上次发表评论后,解决方案非常简单:添加新标签以显示get_mac()
的结果。
解决方案 - 在row=0
和text=get_mac()
中添加标签。
hLbl = Label(top, text=get_mac(), bg='white', relief=SUNKEN, width = 15)
hLbl.grid(row=0, column=1, sticky=E, pady=4)
我已将
bg='white'
和relief=SUNKEN
添加到与之相同的样式中 一个条目。额外width = 15
是扩大标签的大小。
警告1 - 作为@abccd注释,只保留一个mainloop(),并在函数声明后放置root = Tk()
。
警告2 - 不要将root
用作函数bottomFrame = Frame(root)
的{{1}}中的全局变量,而是将其添加为输入参数。
show_form()
并致电:
def show_form(my_root): # use my_root instead of global root
bottomFrame = Frame(my_root)
bottomFrame.pack(side=BOTTOM)
# also for the command parameter
b = Button(bottomFrame,text="ACTIVATE",command=lambda: show_call_back(my_root))
...
编辑-------
输出 - 这是我在Python 3.5.0下获得的