2014-09-22 10 views
5

La documentazione sull'assegnazione di un collegamento a un QPushButton è la seguente:Come si assegna un collegamento a un QPushButton?


Una chiave di collegamento possono essere specificati facendo precedere il personaggio preferito con una commerciale nel testo. Ad esempio:

In questo esempio il collegamento è Alt + D.


cosa devo fare se non voglio che un Alt+[A-Z] scorciatoia? Ad esempio, nel mio caso, desidero far scattare il mio pulsante quando viene premuto il pulsante TAB. Come posso ottenere questo effetto?

risposta

3

È possibile utilizzare uno QShortcut. Un altro suggerimento: il meccanismo di segnale/slot Qt consente di collegare un segnale a un segnale.

0

È possibile sovraccaricare QWidget :: keyPressEvent e direttamente o attraverso il segnale in precedenza appositamente collegato

void MainWindow::keyPressEvent(QKeyEvent * pEvent) 
{ 
    if (Qt::Key_Tab == pEvent->key()) 
    { 
     ui->button->click(); 
    } 

    QMainWindow::keyPressEvent(pEvent); 
} 
5

innescare il vostro tasto di scatto È possibile utilizzare setShortcut metodo, ad esempio:

pushButton->setShortcut(QKeySequence(Qt::Key_Tab)); 

Sarà poi sparare slot assegnato al segnale clicked()

0

È possibile definire la chiave, l'oggetto di destinazione e lo slot pertinente nella truffa structor of QShortcut:

QShortcut * shortcut = new QShortcut(QKeySequence(Qt::Key_Tab),button,SLOT(click())); 
shortcut->setAutoRepeat(false);