[转]combobox添加一对值

本文介绍了一个简单的示例,展示了如何定义一个包含两个属性(名称和值)的类,并使用ArrayList存储该类的对象实例。接着,通过ComboBox组件将这些实例作为数据源显示出来,设置显示成员为名称,值成员为值。

定义一个类,有两个属性
public class ValueObject{
        private string _name;
        private string _value;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public string Value
        {
            get { return _value; }
            set { _value = value; }
        }
}

然后,用一个
ArrayList list = new ArrayList();
for(int i=0; i<3; i++)
{
    ValueObject vo = new ValueObject();
    vo.Name = "a";
    vo.Value = "1";
    list.add(vo);
}

ComboBox cbb = new ComboBox();
cbb.DataSource = list;
cbb.DisplayMember = "Name";
cbb.ValueMember = "Value";

这样就OK了,取值只要cbb.SelectedValue就取到了。

转自http://hi.baidu.com/nirvanan/blog/item/c45ab7b628ebecfd30add149.html

我想利用pyqt5在pycharm上将单片机上采集到的血氧信号进行滤波和显示,并最终生成一个类似于app的交互页面实时显示。目前我需要将单片机采集到的信号波形在我用pyqt创建的页面上显示,我之前已经将单片机采集到的信号传给了上位机,这是单片机部分的相关代码供你参考:main: #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "key.h" #include "beep.h" #include "relay.h" #include "touch_key.h" #include "bmp.h" #include "oled.h" #include "adc.h" #include "stm32f10x.h" // 全局变量 volatile uint16_t red_value = 0; // 红光ADC volatile uint16_t ir_value = 0; // 红外光ADC volatile uint8_t data_ready = 0; // 数据就绪标志 // 状态机枚举 typedef enum { STATE_SET_RED = 0, STATE_WAIT_RED, STATE_SAMPLE_RED, STATE_SET_IR, STATE_WAIT_IR, STATE_SAMPLE_IR } SampleState_t; volatile SampleState_t sample_state = STATE_SET_RED; // 定时器3初始化(2kHz频率) void TIM3_Int_Init(uint16_t arr, uint16_t psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); // 使能TIM3时钟 // 初始化TIM3定时器 TIM_TimeBaseStructure.TIM_Period = arr; // 自动重装载 TIM_TimeBaseStructure.TIM_Prescaler = psc; // 预分频器 TIM_TimeBaseStructure.TIM_ClockDivision = 0; // 时钟分割 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); // 使能更新中断 // 配置NVIC中断 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_Cmd(TIM3, ENABLE); // 使能定时器3 } // PB0和PB1初始化函数 void LED_Control_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始状态:关闭所有LED GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_SetBits(GPIOB, GPIO_Pin_1); } int main(void) { // 初始化各模块 delay_init(); CORE_LED_Init(); CORE_LED_On(); led_init(); key_init(); beep_init(); relay_init(); OLED_Init(); Adc_Init(); uart_init(115200); LED_Control_Init(); // 初始化光源控制引脚 printf("System Start...\r\n"); printf("Red and IR Light Sampling System Ready\r\n"); // 初始化定时器3为2kHz频率 // 计算公式: 72MHz / (71+1) / (49+1) = 2000Hz TIM3_Int_Init(49, 71); while(1) { // 检测数据是否就绪 if(data_ready) { // 按照方案A格式发送数据: R:红光,I:红外光 printf("R:%d,I:%d\n", red_value, ir_value); data_ready = 0; } // 添加短暂延时,避免发送过快 delay_ms(2); // // 可选:添加按键检测等其他功能 // uint8_t key = key_scan(0); // if(key) { // // 处理按键 // } } } // TIM3中断服务函数(2kHz频率) void TIM3_IRQHandler(void) { static uint8_t settle_count = 0; if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update); // 清除中断标志 switch(sample_state) { case STATE_SET_RED: // 设置红光:PB0=0, PB1=1 GPIO_ResetBits(GPIOB, GPIO_Pin_0); GPIO_SetBits(GPIOB, GPIO_Pin_1); sample_state = STATE_WAIT_RED; settle_count = 3; // 等待1.5ms稳定 (500us × 3) break; case STATE_WAIT_RED: if(--settle_count == 0) { sample_state = STATE_SAMPLE_RED; } break; case STATE_SAMPLE_RED: red_value = Get_Adc_Average(ADC_Channel_1, 3); sample_state = STATE_SET_IR; break; case STATE_SET_IR: // 设置红外光:PB0=1, PB1=0 GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_ResetBits(GPIOB, GPIO_Pin_1); sample_state = STATE_WAIT_IR; settle_count = 3; // 等待1.5ms稳定 break; case STATE_WAIT_IR: if(--settle_count == 0) { sample_state = STATE_SAMPLE_IR; } break; case STATE_SAMPLE_IR: ir_value = Get_Adc_Average(ADC_Channel_1, 3); sample_state = STATE_SET_RED; data_ready = 1; // 一对数据采集完成 break; } } } adc.c: #include "adc.h" #include "delay.h" // 初始化ADC // 这里我们仅以规则通道为例 // 我们默认将开启通道0~3 void Adc_Init(void) { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE); // 使能ADC1通道时钟 RCC_ADCCLKConfig(RCC_PCLK2_Div6); // 设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M // PA1 作为模拟通道输入引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; // 模拟输入引脚 GPIO_Init(GPIOA, &GPIO_InitStructure); ADC_DeInit(ADC1); // 复位ADC1,将外设 ADC1 的全部寄存器重设为缺省 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; // ADC工作模式:ADC1和ADC2工作在独立模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE; // 模数换工作在单通道模式 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // 模数换工作在单次换模式 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; // 换由软件而不是外部触发启动 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; // ADC数据右对齐 ADC_InitStructure.ADC_NbrOfChannel = 1; // 顺序进行规则换的ADC通道的数目 ADC_Init(ADC1, &ADC_InitStructure); // 根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器 ADC_Cmd(ADC1, ENABLE); // 使能指定的ADC1 ADC_ResetCalibration(ADC1); // 使能复位校准 while(ADC_GetResetCalibrationStatus(ADC1)); // 等待复位校准结束 ADC_StartCalibration(ADC1); // 开启AD校准 while(ADC_GetCalibrationStatus(ADC1)); // 等待校准结束 } // 获得ADC // ch: 通道 0~3 uint16_t Get_Adc(u8 ch) { // 设置指定ADC的规则组通道,一个序列,采样时间 ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5); // ADC1,ADC通道,采样时间为239.5周期 ADC_SoftwareStartConvCmd(ADC1, ENABLE); // 使能指定的ADC1的软件换启动功能 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); // 等待换结束 return ADC_GetConversionValue(ADC1); // 返回最近一次ADC1规则组的换结果 } // 获取ADC多次采样的平均 uint16_t Get_Adc_Average(u8 ch, u8 times) { u32 temp_val = 0; u8 t; for(t = 0; t < times; t++) { temp_val += Get_Adc(ch); } return temp_val / times; } usart.c: #include "sys.h" #include "usart.h" ////////////////////////////////////////////////////////////////////////////////// //如果使用ucos,则包括下面的头文件即可. #if SYSTEM_SUPPORT_OS #include "includes.h" //ucos 使用 #endif ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; } #endif #if EN_USART1_RX //如果使能了接收 //串口1中断服务程序 //注意,读取USARTx->SR能避免莫名其妙的错误 u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节. //接收状态 //bit15, 接收完成标志 //bit14, 接收到0x0d //bit13~0, 接收到的有效字节数目 u16 USART_RX_STA=0; //接收状态标记 void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9 //USART1_RX GPIOA.10初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//串口波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断 USART_Cmd(USART1, ENABLE); //使能串口1 } void USART1_SendByte(u8 data) { USART_SendData(USART1, data); // 发送数据 while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); // 等待发送完成 } void USART1_SendString(char *str) { u8 i = 0; while (str[i] != '\0') { USART1_SendByte(str[i]); i++; // delay_ms(1); // 适当延时避免发送冲突 } } void USART1_IRQHandler(void) //串口1中断服务程序 { u8 Res; #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS. OSIntEnter(); #endif if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART1); //读取接收到的数据 if((USART_RX_STA&0x8000)==0)//接收未完成 { if(USART_RX_STA&0x4000)//接收到了0x0d { if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始 else USART_RX_STA|=0x8000; //接收完成了 } else //还没收到0X0D { if(Res==0x0d)USART_RX_STA|=0x4000; else { USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ; USART_RX_STA++; if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收 } } } } #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS. OSIntExit(); #endif } #endif 这是我搭建的ui代码: <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>1295</width> <height>967</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0" colspan="2"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="label_7"> <property name="styleSheet"> <string notr="true">font: 14pt "华文宋体";</string> </property> <property name="text"> <string>最低血氧饱和度:</string> </property> </widget> </item> <item> <widget class="QLabel" name="label_8"> <property name="styleSheet"> <string notr="true">font: 14pt "华文宋体";</string> </property> <property name="text"> <string>平均血氧饱和度:</string> </property> </widget> </item> <item> <widget class="QLabel" name="label_9"> <property name="styleSheet"> <string notr="true">font: 14pt "华文宋体";</string> </property> <property name="text"> <string>心率:</string> </property> </widget> </item> </layout> </item> <item row="2" column="0"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> <widget class="QPushButton" name="btn_start_2"> <property name="styleSheet"> <string notr="true">font: 12pt "华文宋体";</string> </property> <property name="text"> <string>开始采集</string> </property> </widget> </item> <item> <widget class="QPushButton" name="btn_save_2"> <property name="styleSheet"> <string notr="true">font: 12pt "华文宋体";</string> </property> <property name="text"> <string>保存数据</string> </property> </widget> </item> </layout> </item> <item row="2" column="2"> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> <widget class="QLabel" name="label_2"> <property name="styleSheet"> <string notr="true">font: 10pt "华文宋体";</string> </property> <property name="text"> <string>界面设置</string> </property> </widget> </item> <item> <widget class="QComboBox" name="comboBox_2"> <item> <property name="text"> <string>只显示原始信号</string> </property> </item> <item> <property name="text"> <string>只显示滤波后信号</string> </property> </item> <item> <property name="text"> <string>显示所有信号</string> </property> </item> </widget> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_5"> <item> <widget class="QLabel" name="label_5"> <property name="styleSheet"> <string notr="true">font: 11pt "华文宋体";</string> </property> <property name="text"> <string>串口</string> </property> </widget> </item> <item> <widget class="QComboBox" name="combo_serial_port_2"/> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_6"> <item> <widget class="QLabel" name="label_6"> <property name="styleSheet"> <string notr="true">font: 11pt "华文宋体";</string> </property> <property name="text"> <string>波特率</string> </property> </widget> </item> <item> <widget class="QComboBox" name="combo_baudrate_2"> <property name="contextMenuPolicy"> <enum>Qt::DefaultContextMenu</enum> </property> <property name="maxVisibleItems"> <number>12</number> </property> <property name="duplicatesEnabled"> <bool>false</bool> </property> <item> <property name="text"> <string>9600</string> </property> </item> <item> <property name="text"> <string>115200</string> </property> </item> <item> <property name="text"> <string>57600</string> </property> </item> </widget> </item> </layout> </item> </layout> </item> <item row="3" column="1"> <widget class="QSlider" name="slider_lowpass"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> <item row="1" column="0" colspan="3"> <widget class="QtCharts::QChartView" name="graphicsView_signal"/> </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>1295</width> <height>26</height> </rect> </property> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <customwidgets> <customwidget> <class>QtCharts::QChartView</class> <extends>QGraphicsView</extends> <header>qchartview.h</header> </customwidget> </customwidgets> <resources/> <connections/> </ui> 这是·我的ui文件换为py后的代码,名为change.py:# -*- coding: utf-8 -*- Form implementation generated from reading ui file ‘change.ui’ Created by: PyQt5 UI code generator 5.15.9 WARNING: Any manual changes made to this file will be lost when pyuic5 is run again. Do not edit this file unless you know what you are doing. from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(“MainWindow”) MainWindow.resize(1295, 967) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName(“centralwidget”) self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName(“gridLayout”) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName(“horizontalLayout”) self.label_7 = QtWidgets.QLabel(self.centralwidget) self.label_7.setStyleSheet(“font: 14pt "华文宋体";”) self.label_7.setObjectName(“label_7”) self.horizontalLayout.addWidget(self.label_7) self.label_8 = QtWidgets.QLabel(self.centralwidget) self.label_8.setStyleSheet(“font: 14pt "华文宋体";”) self.label_8.setObjectName(“label_8”) self.horizontalLayout.addWidget(self.label_8) self.label_9 = QtWidgets.QLabel(self.centralwidget) self.label_9.setStyleSheet(“font: 14pt "华文宋体";”) self.label_9.setObjectName(“label_9”) self.horizontalLayout.addWidget(self.label_9) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 2) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName(“horizontalLayout_3”) self.btn_start_2 = QtWidgets.QPushButton(self.centralwidget) self.btn_start_2.setStyleSheet(“font: 12pt "华文宋体";”) self.btn_start_2.setObjectName(“btn_start_2”) self.horizontalLayout_3.addWidget(self.btn_start_2) self.btn_save_2 = QtWidgets.QPushButton(self.centralwidget) self.btn_save_2.setStyleSheet(“font: 12pt "华文宋体";”) self.btn_save_2.setObjectName(“btn_save_2”) self.horizontalLayout_3.addWidget(self.btn_save_2) self.gridLayout.addLayout(self.horizontalLayout_3, 2, 0, 1, 1) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName(“horizontalLayout_4”) self.verticalLayout_4 = QtWidgets.QVBoxLayout() self.verticalLayout_4.setObjectName(“verticalLayout_4”) self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setStyleSheet(“font: 10pt "华文宋体";”) self.label_2.setObjectName(“label_2”) self.verticalLayout_4.addWidget(self.label_2) self.comboBox_2 = QtWidgets.QComboBox(self.centralwidget) self.comboBox_2.setObjectName(“comboBox_2”) self.comboBox_2.addItem(“”) self.comboBox_2.addItem(“”) self.comboBox_2.addItem(“”) self.verticalLayout_4.addWidget(self.comboBox_2) self.horizontalLayout_4.addLayout(self.verticalLayout_4) self.verticalLayout_5 = QtWidgets.QVBoxLayout() self.verticalLayout_5.setObjectName(“verticalLayout_5”) self.label_5 = QtWidgets.QLabel(self.centralwidget) self.label_5.setStyleSheet(“font: 11pt "华文宋体";”) self.label_5.setObjectName(“label_5”) self.verticalLayout_5.addWidget(self.label_5) self.combo_serial_port_2 = QtWidgets.QComboBox(self.centralwidget) self.combo_serial_port_2.setObjectName(“combo_serial_port_2”) self.verticalLayout_5.addWidget(self.combo_serial_port_2) self.horizontalLayout_4.addLayout(self.verticalLayout_5) self.verticalLayout_6 = QtWidgets.QVBoxLayout() self.verticalLayout_6.setObjectName(“verticalLayout_6”) self.label_6 = QtWidgets.QLabel(self.centralwidget) self.label_6.setStyleSheet(“font: 11pt "华文宋体";”) self.label_6.setObjectName(“label_6”) self.verticalLayout_6.addWidget(self.label_6) self.combo_baudrate_2 = QtWidgets.QComboBox(self.centralwidget) self.combo_baudrate_2.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) self.combo_baudrate_2.setMaxVisibleItems(12) self.combo_baudrate_2.setDuplicatesEnabled(False) self.combo_baudrate_2.setObjectName(“combo_baudrate_2”) self.combo_baudrate_2.addItem(“”) self.combo_baudrate_2.addItem(“”) self.combo_baudrate_2.addItem(“”) self.verticalLayout_6.addWidget(self.combo_baudrate_2) self.horizontalLayout_4.addLayout(self.verticalLayout_6) self.gridLayout.addLayout(self.horizontalLayout_4, 2, 2, 1, 1) self.slider_lowpass = QtWidgets.QSlider(self.centralwidget) self.slider_lowpass.setOrientation(QtCore.Qt.Horizontal) self.slider_lowpass.setObjectName(“slider_lowpass”) self.gridLayout.addWidget(self.slider_lowpass, 3, 1, 1, 1) self.graphicsView_signal = QtChart.QChartView(self.centralwidget) self.graphicsView_signal.setObjectName(“graphicsView_signal”) self.gridLayout.addWidget(self.graphicsView_signal, 1, 0, 1, 3) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1295, 26)) self.menubar.setObjectName(“menubar”) MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(“statusbar”) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label_7.setText(_translate("MainWindow", "最低血氧饱和度:")) self.label_8.setText(_translate("MainWindow", "平均血氧饱和度:")) self.label_9.setText(_translate("MainWindow", "心率:")) self.btn_start_2.setText(_translate("MainWindow", "开始采集")) self.btn_save_2.setText(_translate("MainWindow", "保存数据")) self.label_2.setText(_translate("MainWindow", "界面设置")) self.comboBox_2.setItemText(0, _translate("MainWindow", "只显示原始信号")) self.comboBox_2.setItemText(1, _translate("MainWindow", "只显示滤波后信号")) self.comboBox_2.setItemText(2, _translate("MainWindow", "显示所有信号")) self.label_5.setText(_translate("MainWindow", "串口")) self.label_6.setText(_translate("MainWindow", "波特率")) self.combo_baudrate_2.setItemText(0, _translate("MainWindow", "9600")) self.combo_baudrate_2.setItemText(1, _translate("MainWindow", "115200")) self.combo_baudrate_2.setItemText(2, _translate("MainWindow", "57600")) from PyQt5 import QtChart 我需要你将单片机发送的信号显示在Pycharm实现的界面上,注意界面的下拉框里我希望有以下可选项:显示红光,显示红外光。界面背景设计你可以自由发挥,希望有质感一点
最新发布
11-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值