语法错误:';'在'{'之前

时间:2016-11-25 23:16:32

标签: c++ qt syntax-error

当我的qt程序出现错误时。看看代码,我把错误与相应的行放在一起。我在Windows 10上使用Qt创建器来制作/运行此程序。

#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;
}

2 个答案:

答案 0 :(得分:3)

MainWindow.isFullScreen()是一个无效的表达式,因为MainWindow是一个类型,而不是一个对象。

如果isFullScreen是对象的static方法,则可以使用MainWindow::isFullScreen()。否则,您可以使用this->isFullScreen()

MainWindow.close()必须进行类似的修改。

答案 1 :(得分:1)

请尝试以下替换代码:

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if(this->isFullScreen() && event->key() == Qt::Key_Escape){
        this->close();
    }
}