Qt: usa il puntatore dell'interfaccia utente in funzione separata
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.
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)