int main(int argc, char *argv[]) { QApplication a(argc, argv); //注册外部的二进制资源文件 QResource::registerResource(GAME_RES_PATH); MainScene w; start s; connect(&s,&start::switchWindow(),&w,&MainScene::playGame()); s.show(); return a.exec(); } 报错E:\bird\bird\bird\main.cpp:19: error: cannot call member function 'void start::switchWindow()' without object connect(&s,&start::switchWindow(),&w,&MainScene::playGame()); ^E:\bird\bird\bird\main.cpp:19: error: cannot call member function 'void MainScene::playGame()' without object connect(&s,&start::switchWindow(),&w,&MainScene::playGame()); ^ 、
时间: 2024-04-15 14:29:34 浏览: 125
根据您提供的错误信息,问题出在了`connect`函数的使用上。在`connect`函数中,信号和槽函数的连接应该使用函数指针的形式,而不是调用函数的形式。因此,在连接信号和槽函数时,不应该在函数名后面加上括号。
请将以下代码中的`connect`函数调用改为如下形式:
```cpp
connect(&s, &start::switchWindow, &w, &MainScene::playGame);
```
去掉了信号和槽函数名后面的括号。
修改后的代码如下:
```cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//注册外部的二进制资源文件
QResource::registerResource(GAME_RES_PATH);
MainScene w;
start s;
connect(&s, &start::switchWindow, &w, &MainScene::playGame);
s.show();
return a.exec();
}
```
请注意,您还需要确保`start`类中定义了名为`switchWindow`的信号,以及`MainScene`类中定义了名为`playGame`的槽函数,并正确包含了相应的头文件。
希望这能解决您的问题。如果还有其他问题,请随时提问。
相关问题
int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w;里面的argc和argv是什么意思
在C++中,`int main(int argc, char *argv[])`是程序的主函数的标准形式。`argc`和`argv`是用于接收命令行参数的参数。
- `argc`(argument count)是一个整数,表示命令行参数的数量,包括程序本身。即argc的值至少为1(程序本身的名称)。
- `argv`(argument vector)是一个字符指针数组,用于存储命令行参数的字符串。每个字符串指针指向一个命令行参数的字符串。
当你在命令行中运行一个C++程序时,你可以在程序名称后面添加一些参数。这些参数可以用于向程序传递一些信息或配置选项。例如,运行`./program arg1 arg2`,其中`arg1`和`arg2`就是命令行参数。
在主函数中,`argc`表示命令行参数的数量,`argv`是一个指向每个参数字符串的指针数组。你可以通过遍历`argv`数组来访问和处理每个命令行参数的字符串。
在上述代码中,`int main(int argc, char *argv[])`函数接受命令行参数,并将其传递给`QApplication`对象的构造函数。这样做是为了确保Qt应用程序能够接收和处理命令行参数,以满足不同的需求和配置。
int argc, char *argv[]) QApplication a(argc, argv)
这段代码是一个典型的Qt应用程序的入口点。它定义了一个名为`argc`的整数参数和一个名为`argv`的字符指针数组参数。这些参数通常用于接收命令行参数,以便在应用程序启动时进行配置。
`QApplication a(argc, argv)`是用于创建一个Qt应用程序对象的语句。`QApplication`是Qt框架中的一个类,它管理应用程序的事件循环和窗口系统交互。通过传递`argc`和`argv`参数,应用程序对象可以获取命令行参数并进行相应的处理。
在这段代码中,`QApplication`对象被命名为`a`,它可以用于执行应用程序的主要逻辑。
阅读全文