为什么 connect() 函数看不到插槽?
Why doesn't connect() function see Slot?
我有两个类,分别命名为Snake和MainClass。我需要使用线程。为了使用线程,我必须使用Signal/Slot connect((函数。但是这个函数没有连接到SLOT。我不明白为什么。你可以在下面找到我的一小段代码(相关部分(
MainClass.h
public:
Snake *snake;
MainClass.cpp
QThread *thread1 = new QThread();
snake = new Snake();
snake->moveToThread(thread1);
connect(thread1, SIGNAL(started()), snake, SLOT(keyPressEvent(event)));
thread1->start();
Snake.h
class Snake : public QObject, public QGraphicsRectItem
{
Q_OBJECT
public:
Snake();
public slots:
void keyPressEvent(QKeyEvent *event);
Snake.cpp
void Snake::keyPressEvent(QKeyEvent *event)
{
if(event->key()==Qt::Key_Left)
{
qDebug()<<"player1";
}
}
main.cpp
MainClass *mainclass = new MainClass();
mainclass->show();
mainclass->game();
在添加connect((之前,游戏会正常工作。但当我添加connect((时,我看到一个错误:
QObject::connect: No such slot Snake::keyPressEvent() in ..YilanOyunmainclass.cpp:62"
QThread启动信号没有任何参数,但您将其连接到KeyPressEvent,该事件接受KeyEvent参数,这就是为什么它说找不到不接受参数的插槽。插槽和信号签名应匹配。
相关文章:
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- C++ 信号和插槽不工作:插槽不响应事件
- 看不到文件'SDL2.lib'
- WSL 看不到环境变量
- 为什么我的 FreeRTOS 任务看不到类成员?
- Google Colab 看不到 .so 文件
- 派生类看不到基类成员
- 为什么我看不到字符串?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- OpenMP 任务看不到共享变量的更改
- handleMessage看不到我的类和函数
- 为什么 connect() 函数看不到插槽?
- 使用std::bind将Qt信号连接到插槽
- 模板类看不到继承的模板成员
- Qt:如何将不同类别的静态信号连接到插槽
- 菜单操作连接找不到插槽
- 为什么Qt看不到我的插槽?
- 连接(以一种不寻常的方式)信号到插槽
- Qt找不到插槽
- Qt代码不编译时,我试图连接一个信号到插槽