1

:)

我正在做一个项目,我需要取一个值(ui->SpawnX->value())并将其放入一个 int 变量中。

当我放:

temp_int = ui->SpawnX->value();

void MainWindow::on_actionSave_savegame_dat_triggered()
{
    int temp_int;
}

它运行完美,但是,我将拥有很多这样的东西,所以我想把它放在一个简单的函数中。所以,在此之上我做了:

void LevelWrite()
{
int temp_int;
    temp_int = ui->SpawnX->value();
}

但是每当我运行它时,我都会收到一条错误消息“ui”:未声明的标识符

任何帮助都会很棒:D

谢谢

4

4 回答 4

2

我猜您的 MainWindow 是从 QObject 继承的类型,对吗?所以 ui 是你只能在你的类中访问的数据,这就是为什么你不能从你的函数 LevelWriter 访问它,你可以像

void LevelWrite(MainWindow* window)
{
    int temp_int;
    temp_int = window->getUi()->SpawnX->value();
}

或者将 LevelWriter 放在您的 MainWindow 类中。

于 2013-07-12T13:19:57.323 回答
2

你需要有这个

private: void LevelWrite();

在您的 .h 文件中。很可能您只需要在 .h 文件中已经存在的 private: 部分下方添加 void LevelWrite() 行。然后在您的 .cpp 文件中,您将需要

void MainWindow::LevelWrite()

然后你应该能够ui->在你的 LevelWrite 方法中使用。希望这也可以帮助遇到同样问题的其他人。

于 2018-11-09T04:21:22.950 回答
1

您需要创建LevelWrite类成员,MainWindow因为ui它不是全局变量,而是MainWindow.

于 2013-07-12T13:15:32.087 回答
0

有时,可能是您使用的是 5.x 及更高版本,而没有添加

QT += 小部件

在您的 .pro 文件的顶部。也检查一下。

于 2020-07-14T14:08:47.720 回答