Qt5 - 无法从' int'转换参数2 to' const char *

时间:2017-10-04 10:30:54

标签: c++ windows qt screenshot

给出错误screenshot.save('screenshot.png', 'PNG');

..\screen\main.cpp(10): error C2015: too many characters in constant
..\screen\main.cpp(10): error C2664: 'bool QPixmap::save(QIODevice *,const char *,int) const': cannot convert argument 2 from 'int' to 'const char *'

代码:

#include "mainwindow.h"
#include <QApplication>
#include <QScreen>
#include <QPixmap>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QScreen *screen = a.primaryScreen();
    QPixmap screenshot = screen->grabWindow(0);
    screenshot.save('screenshot.png', 'PNG');

    MainWindow w;
    w.show();
    return a.exec();
}

1 个答案:

答案 0 :(得分:3)

更改

 screenshot.save('screenshot.png', 'PNG');

screenshot.save("screenshot.png", "PNG");

你可以使用单个字符的撇号,例如&#39; a&#39;。 如果函数采用参数类型const char *,你必须使用双引号(&#34;),即使你在那里写单个字符,如&#34; a&#34;。

  

&#39;一个&#39; - const char的类型

     

&#34;&#34; - const char *的类型

如果在撇号中写入多个字符,编译器无法将其转换为char并将转换为int。