从组合框中选择数据位
Choose databits from combobox
我有一个简单的 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))
然后我 运行 代码,我 select 来自数据位组合框的选项(这就是我从组合框获取数据的方式)
self.serial.setDataBits(self.databit_comboBox.currentData())
当我按下连接按钮时,出现此错误:
TypeError: setDataBits(self, QSerialPort.DataBits): argument 1 has unexpected type 'NoneType'
当您使用 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())
我有一个简单的 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))
然后我 运行 代码,我 select 来自数据位组合框的选项(这就是我从组合框获取数据的方式)
self.serial.setDataBits(self.databit_comboBox.currentData())
当我按下连接按钮时,出现此错误:
TypeError: setDataBits(self, QSerialPort.DataBits): argument 1 has unexpected type 'NoneType'
当您使用 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())