Вопрос:использовать указатель пользовательского интерфейса в отдельной функции

StackOverflow https://stackoverflow.com//questions/22031201

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хотел бы изменить графический интерфейс пользователя, используя отдельную функцию при выполнении действия.

Например:вот мой код для щелчка по пункту меню:

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

Мне нужна функция gui_change() для вызова и изменить пользовательский интерфейс.

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

Это приводит к ошибке use of undeclared identifier 'ui', Будучи новичком в Qt, я потратил несколько часов на поиск в Google и Stack, чтобы определить, как получить ui находиться в пределах функции, но не удалось.

Это было полезно?

Решение

Вам нужно сделать gui_change() функцией-членом MainWindow, а затем объявить ее как void MainWindow::gui_change().

Если вы просто напишете void gui_change(), то это отдельная функция, не являющаяся частью какого-либо класса или пространства имен.(Кстати, это проблема C++, а не проблема Qt)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top