python - Populate Option Menu from a variable -
the following part of code. have function scans com ports , pulls available com ports connected. want list these com ports different selections in option menu. when run code, option available com2 com4, there simple way separate these 2 different options? not looking how populate option menu list, how convert data have list. thanks.
global model model = stringvar(master) self.option = stringvar() w = optionmenu(master, self.option, ()) from scan of com ports, print statement returns ['com2', 'com4'].
print(serial_ports()) global com com = list(serial_ports()) self.option.set(com) below full code scanning com port.
def serial_ports(): """ lists serial port names :raises environmenterror: on unsupported or unknown platforms :returns: list of serial ports available on system """ if sys.platform.startswith('win'): ports = ['com%s' % (i + 1) in range(256)] elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'): # excludes current terminal "/dev/tty" ports = glob.glob('/dev/tty[a-za-z]*') elif sys.platform.startswith('darwin'): ports = glob.glob('/dev/tty.*') else: raise environmenterror('unsupported platform') result = [] port in ports: try: s = serial.serial(port) s.close() result.append(port) except (oserror, serial.serialexception): pass return result if __name__ == '__main__': print(serial_ports()) global com com = serial_ports() self.option.set(com)
this proves have said works:
from tkinter import * root = tk() var = stringvar() array = ["com2", "com4"] var.set(array[0]) optionmenu(root, var, *array).pack() root.mainloop() please read this:
Comments
Post a Comment