QT表查找


QT表查找

问题

  • 需要将某头文件中的 menu 作为QComboBox 的选项选择 且返回 menu

解决方法

    1. 首先声明一个结构体,包含选项名字和实际返回的 menu 类型
        struct baudrate_item
        {
            QString m_name ;
            QSerialPort::BaudRate m_baudrate;
        } ;
  1. 接着声明一个上述结构体的 List

       QList < baudrate_item > m_baudrate_list ;
  2. 定义一个 func 按顺序填充这个 List

       void environment::fun_cons_baudrate_list()
       {
           m_baudrate_list.clear() ;
            {
                baudrate_item  item ;
                item.m_name = "115200" ;
                item.m_baudrate =  QSerialPort::Baud115200 ;
                m_baudrate_list.append( item ) ;
            }
            {
                baudrate_item  item ;
                item.m_name = "57600" ;
                item.m_baudrate =  QSerialPort::Baud57600 ;
                m_baudrate_list.append( item ) ;
            }

                   ... ...

        }

4. 定义一个 func 返回选项 Name 的 List

        QStringList environment::fun_get_baudrate_str()
        {
            QStringList i_str_list  ;
            i_str_list.clear() ;

            for(int i = 0 ; i < m_baudrate_list.size() ; i++ )
            {
                i_str_list.append( m_baudrate_list.at(i).m_name );
            }
            return  i_str_list ;
        }

5. 定义一个 func,通过索引返回 emnu 类型的参数

        QSerialPort::BaudRate environment::fun_get_idx_of_enum(int idx)
        {
            QSerialPort::BaudRate i_baudrate = QSerialPort::Baud115200 ;

            if( m_baudrate_list.size() > idx)
            {
                i_baudrate = m_baudrate_list.at(idx).m_baudrate ;
            }

            return  i_baudrate ;
        }

文章作者: bySouffle
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 bySouffle !
  目录