qt5写一个switch例子,switch参数是枚举
时间: 2023-08-17 15:07:52 浏览: 97
枚举(switch、覆盖枚举、实现接口等)
假设我们有一个名为 Fruit 的枚举类型,包含 Apple、Banana 和 Orange 三个值。现在我们要根据用户输入的值来选择对应的操作,可以使用 switch 语句来实现。
在 Qt 中,可以在 QMainWindow 或 QDialog 中添加一个 QLineEdit 和一个 QPushButton,用于输入和提交用户输入的值。在 QPushButton 的 clicked 信号中,我们可以获取 QLineEdit 中的文本,并将其转换为枚举类型。
下面是一个示例代码:
```
#include <QtWidgets>
enum class Fruit
{
Apple,
Banana,
Orange
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
setFixedSize(200, 100);
m_lineEdit = new QLineEdit(this);
m_lineEdit->setGeometry(10, 10, 100, 30);
m_button = new QPushButton("Submit", this);
m_button->setGeometry(10, 50, 100, 30);
connect(m_button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}
private slots:
void onButtonClicked()
{
QString text = m_lineEdit->text();
Fruit fruit;
if (text == "Apple")
fruit = Fruit::Apple;
else if (text == "Banana")
fruit = Fruit::Banana;
else if (text == "Orange")
fruit = Fruit::Orange;
else
return;
switch (fruit)
{
case Fruit::Apple:
qDebug() << "You chose Apple";
break;
case Fruit::Banana:
qDebug() << "You chose Banana";
break;
case Fruit::Orange:
qDebug() << "You chose Orange";
break;
}
}
private:
QLineEdit *m_lineEdit;
QPushButton *m_button;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return app.exec();
}
#include "main.moc"
```
在 onButtonClicked 函数中,首先获取 QLineEdit 中的文本。然后根据文本内容将其转换为枚举类型 Fruit。最后使用 switch 语句根据 Fruit 的值选择对应的操作。
注意,由于 Fruit 是一个枚举类型,我们需要使用 enum class 来定义,以避免命名冲突。
阅读全文