给出错误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();
}
答案 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。