我正在开发一个将数据从串行端口记录到 .txt 文件的 Python 程序。该程序使用 Tkinter 的 OptionMenu 来询问用户使用哪个串口。端口列表如下:
def serial_ports():
for port in list_ports.comports():
yield port
OPTIONS = list(serial_ports())
然后程序制作 OptionMenu (window name = 'win', frame = 'c'):
var = StringVar(win)
var.set(OPTIONS[0]) # initial value
for item in OPTIONS:
print item #statement here is temporary to prevent the prog from giving error while testing
w = apply(OptionMenu, (c, var, item))
w.pack(side=RIGHT)
我随后得到了要打印的项目,但我找不到在 OptionMenu 中获取它们的方法。代码如:
for n in OPTIONS:
#tried different things here: count, n = item, et whatever crazy stuff one tries.
w = apply(OptionMenu, (c, var, OPTIONS[n]))
没有解决问题。
最后的想法是 OptionMenu 的选择返回串行端口的名称,最好是一个字符串(不是索引)。将插入:
ser0 = serial.Serial(port = '[HERE!!!]', baudrate = 9600, timeout = 0.5)
附言。目前该程序是为 Mac OS X 和 Python 2.7.1 编写的。