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 に答える
1

はグローバル変数ではなく のクラス メンバーであるため、LevelWriteのクラス メンバーを作成する必要があります。MainWindowuiMainWindow

于 2013-07-12T13:15:32.087 に答える