gpt4 book ai didi

c++ - QT中 "Colliding Mice"中的变量step是怎么变的?

转载 作者:行者123 更新时间:2023-11-30 01:14:26 26 4
gpt4 key购买 nike

我正在通读 this example基于 C++ 的 QT 项目。定义了一个名为 Mouse 的类(在文件 mouse.h 中)继承自 QGraphicsItem,该类有一个声明如下的方法:

protected:
void advance(int step) Q_DECL_OVERRIDE;

advance 方法在文件 mouse.cpp 中(重新)实现并按如下方式启动:

void Mouse::advance(int step)
{
if (!step)
return;
... and some more code ...

这是整个程序中唯一提到变量step 的三个地方(我在每个源文件中进行了搜索)。 advance 方法是从 main.cpp 文件中的 QTimer 实例调用的,但(奇怪的是?)没有参数。但是,在 advance 方法开始处使用断点进行调试表明 step 在值 0 和 1 之间循环。

有人知道这是为什么吗?链接中的教程只是说明它是这样做的,但没有说明如何设置或更改其值。

最佳答案

更仔细地阅读文档。 QTimer调用的advance()方法是QGraphicsScene的成员。 QGraphicsScene::advance()scene in two phases 中调用所有 QGraphicsItemadvance( int phase ) ,第一阶段通知项目即将更改(当参数为 0 时),第二阶段通知实际更改(参数为 1 时)。

关于c++ - QT中 "Colliding Mice"中的变量step是怎么变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com