Domanda

Vorrei modificare l'UI GUI utilizzando una funzione separata quando si verifica un'azione.

Ad esempio: Ecco il mio codice per una voce di menu in fasezione:

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

Vorrei che la funzione gui_change() sia chiamata e modificare l'interfaccia utente.

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

Si traduce nell'errore use of undeclared identifier 'ui', essendo nuovo a QT, ho speso qualche ora che google e cercava lo stack per determinare come ottenere ui per essere nell'ambito della funzione, ma non è riuscito.

È stato utile?

Soluzione

È necessario creare GUI_CHANGE () una funzione membro di MainWindow e quindi dichiararlo come void MainWindow::gui_change().

Se si scrive semplicemente void gui_change(), quindi è una funzione standalone che non fa parte di alcuna classe o spazio dei nomi.(BTW, questo è un problema C ++, non un problema QT)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top