C++ 按按钮单击控制qt中的循环

C++ 按按钮单击控制qt中的循环,c++,macos,qt,signals-slots,C++,Macos,Qt,Signals Slots,我是Qt新手,我正在尝试运行一个循环,使用QPainter更新QWidget。简而言之,我试图运行一个无限循环,通过点击按钮刷新QWidget(比如开始游戏)。然后我想在点击另一个按钮时停止循环(比如说结束游戏)。我还想了解获得此功能的更好方法 在我的MainWindow类中,我想启动一个包含类游戏对象的线程。当调用game->start\u game()方法时,一个无限循环开始。我想点击按钮开始循环。然后,单击另一个按钮“结束”时,循环应退出 我的游戏课: class Game : publi

我是Qt新手,我正在尝试运行一个循环,使用QPainter更新QWidget。简而言之,我试图运行一个无限循环,通过点击按钮刷新QWidget(比如开始游戏)。然后我想在点击另一个按钮时停止循环(比如说结束游戏)。我还想了解获得此功能的更好方法

在我的MainWindow类中,我想启动一个包含类游戏对象的线程。当调用game->start\u game()方法时,一个无限循环开始。我想点击按钮开始循环。然后,单击另一个按钮“结束”时,循环应退出

我的游戏课:

class Game : public QObject
{
Q_OBJECT
public:
Game(int n);
~Game();

public slots:
void start_game();
void end_game();

signals:
void finish_game();

private:
int num;
};
游戏类方法的定义:

Game::Game(int n)
{
    num = n;
}

void Game::start_game()
{
    int i = 0;
    while(true)
    {
    cout << "game loop started:" << i++ << endl;
    }
    //emit finish_thread();
}

 void Game::end_game()
{
    cout << "*************************end**************************" << endl;
    emit finish_game();
}

Game::~Game()
{

}
Game::Game(int n)
{
num=n;
}
无效游戏::开始游戏()
{
int i=0;
while(true)
{

cout您的三角形是在
z=-2
处绘制的。由于您似乎从未设置投影矩阵,因此它将保留在identity处,OpenGL将沿所有三维剪裁超出范围的任何内容
[-1,1]
(不管你以什么角度旋转它,因为它会绕着西奥·里金旋转,它总是离原点2个单位)


当您学习OpenGL时,您应该知道,您使用的大多数GL功能自近十年来就已被弃用。在现代GL中,这些功能已被完全删除。您的书似乎已经过时。我只能建议您改为学习现代OpenGL。

请在问题本身中提供答案。完成!感谢您让我确定现在
Game::Game(int n)
{
    num = n;
}

void Game::start_game()
{
    int i = 0;
    while(true)
    {
    cout << "game loop started:" << i++ << endl;
    }
    //emit finish_thread();
}

 void Game::end_game()
{
    cout << "*************************end**************************" << endl;
    emit finish_game();
}

Game::~Game()
{

}