在鼠标按下事件的事件处理程序我的Qt应用程序我有这样丑陋的代码如何正确处理鼠标事件处理程序中的不同情况?
void Render::Viewer::mousePressEvent(QMouseEvent* e)
{
switch (e->button())
{
case Qt::LeftButton:
switch (mode_)
{
case Render::Viewer::ModeView:
switch (e->modifiers())
{
case Qt::NoModifier:
...
break;
...
default:
break;
}
break;
case Render::Viewer::ModeEdit:
...
break;
}
break;
case Qt::RightButton:
...
break;
}
}
即使没有MODE_可变开关的代码看起来很可怕。 =(两个多自由度:?按钮类型,修饰符,...绝对不可读
是否有克服这种“开关堆”任何方式
谢谢你,比尔。答案很明显。 =)“分而治之”。我怎么能忘记这个原则? – Wildcat 2009-11-12 16:28:05