Frage

Ich möchte die GUI-Benutzeroberfläche ändern, indem ich eine separate Funktion verwende, wenn eine Aktion stattfindet.

Zum Beispiel:Hier ist mein Code für einen Menüpunkt, auf den geklickt wird:

void MainWindow::on_actionImperial_triggered()
{
    ui->actionMetric->setChecked(false);
    ui->z_unit_label->setText("inches");
    void gui_change();
}

Die Funktion würde mir gefallen gui_change() aufgerufen werden und die Benutzeroberfläche ändern.

void gui_change()
{
    ui->pushButton_2->setStyleSheet("color:grey");
    ui->pushButton->setStyleSheet("color:green");
}

Dies führt zu dem Fehler use of undeclared identifier 'ui', Da ich neu bei Qt bin, habe ich ein paar Stunden damit verbracht, Stack zu googeln und zu durchsuchen, um herauszufinden, wie ich darauf komme ui innerhalb des Funktionsumfangs liegen, waren aber nicht erfolgreich.

War es hilfreich?

Lösung

Sie müssen gui_change() zu einer Mitgliedsfunktion von MainWindow machen und sie dann als deklarieren void MainWindow::gui_change().

Wenn Sie einfach schreiben void gui_change(), dann handelt es sich um eine eigenständige Funktion, die nicht Teil einer Klasse oder eines Namensraums ist.(Übrigens ist dies ein C++-Problem, kein Qt-Problem)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top