Ich benutze Qt. Ich habe eine Schaltfläche auf der Seite, die über den Qt Creator hinzugefügt wurde. Es ist mit der Methode void MyPage::on_startButton_clicked()
verbunden.
Ich möchte programmgesteuert auf diese Schaltfläche klicken. Ich probierte ui->startButton->clicked()
, es gibt,
Fehler C2248: 'QAbstractButton :: clicked': kann nicht auf das in der Klasse 'QAbstractButton' deklarierte geschützte Member zugreifen
Bitte helfen Sie. Danke!
RA's Antwort bietet die Möglichkeit dies zu tun, so dass es sichtbar ist, dass die Schaltfläche angeklickt wurde. Wenn Sie nur das Signal aussenden wollen, ist das, was Sie tun, in Qt 5 korrekt, wo die Signale öffentlich sind.
Der angezeigte Fehler weist darauf hin, dass Sie Qt 4 verwenden, bei dem die Signale nicht öffentlich sind. Sie können dies umgehen, indem Sie das Signal indirekt aufrufen:
%Vor% Dies ruft die Methode sofort auf, d. h. das Signal wird gesendet und die durch die Zeit invokeMethod
aufgerufenen Schlitze kehren zurück. Leider setzt der meiste Code (meistens Ihr Code!) Voraus, dass das Signal von Ereignisverarbeitungscode in der Nähe der Ereignisschleife ausgegeben wird - d. H. Es ist nicht wiedereintretend, sondern von Ihrem eigenen Code. Daher sollten Sie die Signalemission auf die Ereignisschleife verschieben:
Das folgende ist ein vollständiges Beispiel für Qt 5.4 & amp; oben:
%Vor%Wenn Sie die Animation nicht möchten, können Sie auch einfach die Methode aufrufen:
%Vor%