从组合框中选择数据库

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

我有一个简单的GUI用于与Arduino UNO进行串行通信。首先,我在OrderedDict中列出所有数据位,然后我将它们放在一个组合框中:

self.databits = OrderedDict([
            ('5', QtSerialPort.QSerialPort.Data5),
            ('6', QtSerialPort.QSerialPort.Data6),
            ('7', QtSerialPort.QSerialPort.Data7),
            ('8', QtSerialPort.QSerialPort.Data8)
        ])
        self.databit_comboBox.addItems(list(self.databits))

然后我运行代码,我从databits组合框中选择一个选项(这是我从组合框获取数据的方式)

self.serial.setDataBits(self.databit_comboBox.currentData())

当我按下连接按钮时,我收到此错误:

TypeError: setDataBits(self, QSerialPort.DataBits): argument 1 has unexpected type 'NoneType'
python pyqt pyqt5 qcombobox qtserialport
1个回答
2
投票

使用addItems()方法添加数据时,只需添加文本,因此您将丢弃第二部分。解决方案是迭代并分离每个部分:

databits = [
        ('5', QtSerialPort.QSerialPort.Data5),
        ('6', QtSerialPort.QSerialPort.Data6),
        ('7', QtSerialPort.QSerialPort.Data7),
        ('8', QtSerialPort.QSerialPort.Data8)
]
for text, databit in databits:
    self.databit_comboBox.addItem(text, databit)

# ...

self.serial.setDataBits(self.databit_comboBox.currentData())
© www.soinside.com 2019 - 2024. All rights reserved.