2016-11-25 81 views
-3

當我的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; 
} 

+4

如果'MainWindow'是一個類名,它不能跟着'.',它的靜態方法應該通過'訪問::'。 – myaut

+0

close()不是靜態的。所以MainWindow :: close()也不起作用。一個簡單的close();應該夠了。 – drescherjm

回答

3

MainWindow.isFullScreen()是一個無效的表達,因爲MainWindow是一種類型的,而不是一個對象。

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

MainWindow.close()必須進行類似的修改。

1

嘗試以下替換代碼:

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