syntax error: ';' before '{'

syntax error: ';' before '{'

当我的 qt 程序出现一些错误。查看代码,我将错误放在相应的行中。我在 Windows 10 到 make/run 这个程序上使用 Qt creator。

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

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

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

MainWindow.close()也要类似修改

尝试以下替换代码:

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