传递标准枚举值

时间:2017-02-22 02:29:23

标签: c++ qt

我正在编写一个toast风格的消息框,但我无法直接传递标准图标。下面的开关工作,但是很笨重。这样做的正确方法是什么,以便我可以摆脱开关选择?

  public LegacyWebSocket<String> socket(String token) {
        return WebSocket.withActor(actorRef -> WSActor.props(actorRef,token));
  }

1 个答案:

答案 0 :(得分:1)

更改您的功能签名,使其接受对enum QMessageBox::Icon的引用作为第二个参数而不是int level。像这样:

void MainWindow::mtoast(int msgtime, const enum QMessageBox::Icon& icon, QString msg)
{
    QMessageBox *mbox = new QMessageBox;
    mbox->setStandardButtons(0);
    mbox->setText(msg);
    mbox->setIcon(icon); //this statement replaces the entire switch
    mbox->setWindowFlags ( Qt::CustomizeWindowHint | Qt::WindowTitleHint);
    mbox->show();
    QTimer::singleShot(msgtime, mbox, SLOT(hide()));

}