前段时间我写了一个Python3程序,允许我连接到许多计算机中的一台。
#! /usr/bin/env python3
from tkinter import *
import os
Computers = [
'RaspberryPi3',
'PiUbuntu',
'Thylacoleo']
def sel():
cmd = "open afp://" + Computers[var.get()] + ".local"
os.system( cmd )
root = Tk() # create tkinter object
root.title("Connect to Computer") # give the window a title...
root.minsize(250, 100)
var = IntVar()
button=0
for cc in Computers:
R1 = Radiobutton(root, text=cc, variable=var, value=button, command=sel)
R1.pack( anchor = W )
button += 1
root.mainloop()
这是有效的,我虽然通过使用Dictionary来安装nfs
共享来调整它很简单。不幸的是,我似乎无法让它工作。
我以前的努力从每个按钮返回一个整数。但这不适用于Dictionary,我想获得一个返回的字符串值。
Computers = {
'RaspberryPi3': 'Pi3',
'PiUbuntu': 'PiUbuntu',
'Ubuntu-T': 'Thylaco'
}
def sel():
print("selection", tvar)
selection = "You selected the option " + tvar
root = Tk() # create tkinter object
root.title("Connect to Computer") # give the window a title...
root.minsize(250, 100)
# var = IntVar()
# tvar = StringVar()
tvar = str()
button=0
for cc in list(Computers.keys()):
# R1 = Radiobutton(root, text=cc, variable=var, value=button, command=sel)
R1 = Radiobutton(root, text=cc, variable=tvar, value=cc, command=sel)
# R1 = Radiobutton(root, text=cc, textvariable=tvar, command=sel)
R1.pack( anchor = W )
root.mainloop()
我知道我可以创建一个列表,并使用整数,但我试图了解如何返回一个字符串。我已经阅读了文档,看了很多链接,但没有发现任何相关的例子。
tvar = StringVar()
导致错误: -
TypeError: must be str, not StringVar
我怀疑你有问题(你没有显示完整的Traceback)
selection = "You selected the option " + tvar
你必须使用tvar.get()
从tvar
获取值/字符串
selection = "You selected the option " + tvar.get()