Tkinter-从组合框选择COM端口

问题描述 投票:0回答:1

我有一个带有所有串行端口列表的复选框,并且用户从组合框中选择一个,以便以后与arduino进行交互。

这里是有趣的部分:

# --- functions ---
def serial_ports():    
    return serial.tools.list_ports.comports()

def on_select(event=None):

    # get selection from event    
    print("event.widget:", event.widget.get())

    # or get selection directly from combobox
    print("comboboxes: ", cb.get())

# --- functions ---



label0 = tk.Label(frame1, text="Select the COM port that the device is plugged in: ")
label0.config(font=("TkDefaultFont", 8))
label0.place(relx = 0.1, rely=0.3, relwidth=0.3, relheight=0.5)


cb = ttk.Combobox(frame1, values=serial_ports())
cb.place(relx=0.5, rely=0.5, anchor='center')
# assign function to combobox
cb.bind('<<ComboboxSelected>>', on_select)

cb.bind()将选择移至on_select()。但是,当我使用on_select()功能打印用户选择的数据时,我得到:

event.widget: COM14 - Arduino Mega 2560 (COM14)

我只想获取COM端口,例如'COM14'这样就可以在变量中分配它,然后像这样使用它:

ser = serial.Serial('COM14', baudRate, timeout=0, writeTimeout=0)

这里不是'COM14',我只是有我的变量。]​​>

是否有pySerial的方法,以便仅获取COM端口,而没有完整的描述?

我有一个包含所有串行端口列表的复选框,用户从组合框中选择一个,以便以后与arduino进行交互。以下是有趣的位:#---函数--- def ...

python tkinter serial-port pyserial
1个回答
0
投票

serial.tools.list_ports.comports()的结果是serial.tools.list_ports.ListPortInfo实例的列表。

© www.soinside.com 2019 - 2024. All rights reserved.