gpt4 book ai didi

c++ - 使用 Qt 将函数链接到计时器

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

我有一个函数,其声明在上面:

double image_function(double SUM, double AVR, double &Value)

我读到 SIGNALS 和 SLOTS 必须具有相同的参数,当我将定时器应用到我的函数时如何调整该条件,如下所示:

connect(timer, SIGNAL(timeout()), this, SLOT(image_function()));
timer->start(0);

最佳答案

那是不可能的。您的函数需要 3 个参数,您必须给它们。计时器怎么会知道您的函数的参数?

为定时器的超时创建一个槽函数(没有任何参数)。从那里使用您想要的参数调用 image_function

假设您的类(class)是一个主窗口。您需要为 QTimer 的超时信号声明插槽:

class MainWindow : public QMainWindow
{
Q_OBJECT
public:
...

private slots:
void timer_image_function();

};

然后在 .cpp 中,您在某处创建一个 QTimer 并将其信号连接到这个新插槽:

connect(timer, SIGNAL(timeout()), this, SLOT(timer_image_function()));
timer->start(0);

当然,你需要实现槽函数,它实际上调用了image_function:

void MainWindow::timer_image_function()
{
double result = image_function(SUM, AVR, Value);
}

关于c++ - 使用 Qt 将函数链接到计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784409/

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