gpt4 book ai didi

c++ - Qt C++ 信号槽不能正常工作

转载 作者:行者123 更新时间:2023-11-30 02:28:56 25 4
gpt4 key购买 nike

我的代码有一个奇怪的行为:

我想设置信号槽连接。当我没有任何参数时,它工作正常。但是当我使用像 int 这样简单的参数时,我的连接不起作用。 有人知道为什么会这样吗?

谢谢。

这个有效:

Chart.h       
void signalForUI();

Chart.cpp
emit signalForUI();

Userinterface.h
public slots:
void UI_schreibtWas();

Userinterface.cpp

connect( ui.Diagram , SIGNAL( signalForUI() ),
this ,SLOT (UI_schreibtWas())) ;
...

void UserInterface::UI_schreibtWas()
{ qDebug() << "ich schreibe was- ohne "; }

这不是:

Chart.h       
void signalForUI(const int &X_send);

Chart.cpp
emit signalForUI(5);

Userinterface.h
public slots:
void UI_schreibtWas(const int &X_send);

Userinterface.cpp

connect( ui.Diagram , SIGNAL( signalForUI(const int &X_send) ),
this ,SLOT (UI_schreibtWas(const int &X_send))) ;
...

void UserInterface::UI_schreibtWas(const int &X_send)
{ qDebug() << "ich schreibe was - int "; }

最佳答案

您不应该将参数名称传递到 connect 的信号/槽定义中。

connect(ui.Diagram, SIGNAL(signalForUI(const int&)),
this, SLOT(UI_schreibtWas(const int&)));

但是您应该使用 Qt 5 语法进行连接,它不使用宏并允许您在编译时捕获此类错误:

connect(ui.Diagram, &DiagramClass::signalForUI, this, &ThisClass::UI_schreibtWas)

用适当的类名替换 DiagramClassThisClass

关于c++ - Qt C++ 信号槽不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40220916/

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