在鼠標按下事件的事件處理程序我的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