Hoe koppel ik menuklik aan actie in Qt Creator?

Ik ben helemaal nieuw in Qt.

Ik ben begonnen met een nieuwe Qt4 GUI-toepassing.

Met behulp van de ontwerper heb ik een menu als volgt gemaakt:

File
 - Exit

Hoe kan ik een actie koppelen aan het menu-item?

Ik heb iets gevonden dat de ‘Signals and slots editor’ heet, maar ik heb geen idee hoe ik het moet gebruiken.


Antwoord 1, autoriteit 100%

Klik op het groene plusteken nadat je de signalen Slots Editor hebt geselecteerd. Het geeft u 4 velden om in te vullen. Voor de afzender selecteert u wat het signaal creëert. ActionExit kan bijvoorbeeld de naam zijn die u hebt gemaakt voor het menu-item Afsluiten. Er wordt waarschijnlijk op het signaal geklikt(). De ontvanger is meestal de klasse die u hebt gemaakt en die al uw methoden bevat. Het slot is de methode die je hebt gemaakt in die klasse die je wilt uitvoeren. Bijvoorbeeld:

actionExit clicked() <nameOfClass> exitGame()

Hopelijk helpt dit.


Antwoord 2, autoriteit 85%

Het is me gelukt om dit op een manier te doen die veel gemakkelijker lijkt. In het Qt Creator Action Editor-venster zie ik een item voor het menu-item waarop ik heb geklikt. Ik rt-klik op dat item en selecteer “Ga naar slot…”, selecteer vervolgens geactiveerd() in de pop-up en klik op OK. Qt Creator brengt me naar de code die het zojuist heeft toegevoegd…. Ik heb daar een qDebug-instructie geplaatst en het werkt!


Antwoord 3, autoriteit 9%

Ga naar de Slots Editor en klik vervolgens op de Action Editor-tab linksonder. Er worden alle menu-acties weergegeven.

Klik met de rechtermuisknop -> ga naar Slot biedt een slotfunctie.


Antwoord 4, autoriteit 4%

Ik heb op dit geweldige forum 2 of 3 van dit soort vragen gezien, maar ze zijn allemaal erg verwarrend, het is niet nodig om naar de maker van het signaal/slot te gaan, heb zojuist Qt Designer gekregen en volg de volgende stappen

1.Voeg menu en actie toe aan de menubalk en voeg een functie toe in de sleuf van uw mainwindow.h-bestand als volgt
private slots:
void help();

2.Voeg vervolgens de volgende code toe aan uw mainwindow.cpp.

connect(ui->actionmyactions, SIGNAL(triggered()), this, SLOT(help()));

3. Hetzelfde kan ook voor menu’s worden gedaan met de volgende code:

connect(ui->menuHelp, SIGNAL(aboutToShow()), this, SLOT(help()));

4.U kunt als volgt de gewenste resultaten krijgen zonder naar Qt Designer te gaan.

  1. verklaar uw actie in uw hoofdvenster.h als volgt

    QAction *myaction;

  2. en voeg de volgende code toe aan je mainwindow.cpp

    myaction = ui->mainToolBar->addAction("help");
    connect(myaction, SIGNAL(triggered()), this, SLOT(help()));

Other episodes