Qt 中使用 QComboBox 枚举常量和字符串进行 Switch 调用
在 Qt 中,可以使用 QComboBox 的 currentIndex() 方法获取当前选中项的索引,然后根据索引进行 switch 调用。将四个选项设置为一个枚举常量,可以使用 int 类型的枚举值来表示不同的模式。
以下是一个示例代码:
enum Mode {
NoneMode,
SleepMode,
DailyMode,
EnergySavingMode
};
QComboBox* comboBox = new QComboBox;
comboBox->addItem('None');
comboBox->addItem('Sleep Mode');
comboBox->addItem('Daily Mode');
comboBox->addItem('Energy Saving Mode');
// 获取当前选中项的索引
int currentIndex = comboBox->currentIndex();
// 根据索引进行 switch 调用
switch (currentIndex) {
case NoneMode:
// 处理 NoneMode
break;
case SleepMode:
// 处理 SleepMode
break;
case DailyMode:
// 处理 DailyMode
break;
case EnergySavingMode:
// 处理 EnergySavingMode
break;
default:
// 处理未知模式
break;
}
在这个示例中,我们使用 int 类型的枚举值表示不同的模式,然后根据 QComboBox 的 currentIndex() 方法获取当前选中项的索引,再根据索引进行 switch 调用。
mode 是 QString 类型的情况下,可以使用 QString 的 compare() 方法进行字符串比较,然后根据不同的字符串进行 switch 调用。以下是一个示例代码:
QString mode = comboBox->currentText();
// 根据字符串进行 switch 调用
if (mode.compare('None') == 0) {
// 处理 NoneMode
} else if (mode.compare('Sleep Mode') == 0) {
// 处理 SleepMode
} else if (mode.compare('Daily Mode') == 0) {
// 处理 DailyMode
} else if (mode.compare('Energy Saving Mode') == 0) {
// 处理 EnergySavingMode
} else {
// 处理未知模式
}
在这个示例中,我们使用 QString 的 compare() 方法将当前选中的字符串与预定义的字符串进行比较,然后根据不同的字符串进行 switch 调用。
原文地址: https://www.cveoy.top/t/topic/fCYd 著作权归作者所有。请勿转载和采集!