C++ 语法错误:'';在'之前;{';
当我的qt程序出现一些错误时。看看代码,我把错误和相应的行放在一起。我正在使用Windows 10上的qt creator制作/运行这个程序C++ 语法错误:'';在'之前;{';,c++,qt,syntax-error,C++,Qt,Syntax Error,当我的qt程序出现一些错误时。看看代码,我把错误和相应的行放在一起。我正在使用Windows 10上的qt creator制作/运行这个程序 #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Q
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QMainWindow::showFullScreen();
QPixmap p("C:/Users/*****/Pictures/Start_Orb.png");
ui->label->setPixmap(p);
ui->label->setFixedSize(400, 400);
ui->label->show();
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if(MainWindow.isFullScreen() && event->key() == Qt::Key_Escape){//syntax error '.' and syntax error: missing ';' before '{'
MainWindow.close();//syntax error '.' and syntax error: missing ';' before '.'
}
}
MainWindow::~MainWindow()
{
delete ui;
}
I
MainWindow.isFullScreen()
是无效的表达式,因为MainWindow
是类型,而不是对象
如果isFullScreen
是对象的静态方法,则可以使用main window::isFullScreen()
。否则,可以使用this->isFullScreen()
main window.close()
必须进行类似修改。尝试以下替换代码:
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if(this->isFullScreen() && event->key() == Qt::Key_Escape){
this->close();
}
}
如果MainWindow
是一个类名,那么它后面不能跟
,它的静态方法应该通过:
访问。close()不是静态的。因此MainWindow::close()也不起作用。简单的close()就足够了。