我有一个声明在上面的函数:
double image_function(double SUM, double AVR, double &Value)
我已经读过 SIGNALS 和 SLOTS 必须具有相同的参数,当将计时器应用于我的函数时,如何调整该条件如下:
connect(timer, SIGNAL(timeout()), this, SLOT(image_function()));
timer->start(0);
我有一个声明在上面的函数:
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
你想要的参数。
假设您的课程是一个主窗口。您需要为 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);
当然,你需要实现 slot 函数,它实际上调用了image_function
:
void MainWindow::timer_image_function()
{
double result = image_function(SUM, AVR, Value);
}