3

以下のコードで、私がしたいのですが、患者タイプボタンを選択/クリックした場合。メニュー「xmenumain」「PediatricECG」項目のそれらは無効にする必要があります(メニューリストには表示されますが、色あせた灰色で表示されます)。どうすればそれを達成できますか?

void MyMenu::cppSlot()
    {
     xmenumain = new QMenu;

    xmenumain->addAction("                   X",this, SLOT (call_exit(xmenumain)));
    xmenumain->addAction ( "Edit User Settings" , this , SLOT (call_a()) );
    xmenumain->addAction ( "Parameters" , this , SLOT (call_b()) );
    xmenumain->addAction ( "Sound Adjust" , this , SLOT (call_c()) );
    xmenumain->addAction ( "Patient Type" , this , SLOT (call_d()) );
    xmenumain->addAction ( "Pediatric ECG" , this , SLOT (call_d()) );
    xmenumain->addAction ( "Data Output" , this , SLOT (call_d()) );
    xmenumain->addAction ( "Set Time & Date" , this , SLOT (call_d()) );
    xmenumain->addAction ( "Sweepspeed" , this , SLOT (call_d()) );
    xmenumain->addAction ( "Respspeed" , this , SLOT (call_d()) );

    //xmenumain->popup( QCursor::pos() );
    //Change font and width

    xmenumain->setFont(QFont ("Courier", 13));
    xmenumain->setFixedWidth(250);
    //Colour setting
    QPalette palette=xmenumain->palette();
    palette.setColor(QPalette::Background, Qt::darkGray);
    xmenumain->setPalette(palette);
    //xmenumain->languageChange();


    //xmenumain->setAutoFillBackground(true);


    // Align the menu coordinates
    xmenumain->move(940,370);
    xmenumain->show();
    /*if(!(xmenumain->isEnabled()))
    {
        xmenumain->show();
    }*/
}
4

1 に答える 1

11

QAction オブジェクトが必要です。

QAction *action = new QAction("Pediatric ECG");
connect(action, SIGNAL(triggered), this, SLOT(...));
action->setEnabled(false);

xmenumain->addAction(action);
于 2013-01-22T06:18:45.983 に答える