这是mainscene的代码 emit fail(m_barriers[0].score);这是end.cpp代码#include "end.h" #include "ui_end.h" #include <QLabel> #include <QString> #include "barrier.h" #include "mainscene.h" end::end(QWidget *parent) : QWidget(parent), ui(new Ui::end) { ui->setupUi(this); } end::~end() { delete ui; } void end::on_pushButton_clicked() { close(); } void end::gets(int a){ s=a; ui->label->setText("score"); ui->label_2->setText(s); } 这是main代码#include "mainscene.h" #include <QApplication> #include <QResource> #include "config.h" #include <QIcon> #include <QtCore> #include <QWidget> #include <QtWidgets> #include "start.h" #include "end.h" #include "mainscene2.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); //注册外部的二进制资源文件 QResource::registerResource(GAME_RES_PATH); end t; MainScene w; start s; MainScene2 q; QObject::connect(&s, SIGNAL(switchWindow()), &w, SLOT(start())); QObject::connect(&s, SIGNAL(switchWindow()), &w, SLOT(show())); QObject::connect(&w, SIGNAL(fail(int)), &t, SLOT(gets(int))); QObject::connect(&w, SIGNAL(fail(int)), &t, SLOT(show())); QObject::connect(&s, SIGNAL(switchWindow2()), &q, SLOT(start())); QObject::connect(&s, SIGNAL(switchWindow2()), &q, SLOT(show())); QObject::connect(&q, SIGNAL(fail()), &t, SLOT(show())); s.show(); return a.exec(); } show没有问题
时间: 2024-04-16 11:26:49 浏览: 115
基于QT的翻金币小游戏
根据你提供的代码,问题可能出在信号和槽函数的连接上。在 `main.cpp` 中,你将 `w` 对象的 `fail` 信号连接到了 `t` 对象的 `gets` 槽函数,但是你没有将 `w` 对象的 `fail` 信号与 `t` 对象的 `show` 槽函数连接起来。
请尝试将以下代码添加到 `main.cpp` 中的信号和槽函数连接部分:
```cpp
QObject::connect(&w, SIGNAL(fail(int)), &t, SLOT(show()));
```
这样,当 `w` 对象的 `fail` 信号触发时,会调用 `t` 对象的 `show` 槽函数。
另外,请确保在 `end.cpp` 中正确包含了相关的头文件,如 `"mainscene.h"` 和 `"ui_end.h"`。
如果问题仍然存在,请提供完整的错误信息,以及任何其他相关代码或上下文信息,以便我们能够更好地帮助你解决问题。
阅读全文