QT表查找
问题
- 需要将某头文件中的 menu 作为QComboBox 的选项选择 且返回 menu
解决方法
- 首先声明一个结构体,包含选项名字和实际返回的 menu 类型
struct baudrate_item
{
QString m_name ;
QSerialPort::BaudRate m_baudrate;
} ;
接着声明一个上述结构体的 List
QList < baudrate_item > m_baudrate_list ;定义一个 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 ;
}