我正在编写一个toast风格的消息框,但我无法直接传递标准图标。下面的开关工作,但是很笨重。这样做的正确方法是什么,以便我可以摆脱开关选择?
public LegacyWebSocket<String> socket(String token) {
return WebSocket.withActor(actorRef -> WSActor.props(actorRef,token));
}
答案 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()));
}