2017-10-11 193 views
0

我想知道爲什麼這個代碼創建基於假公司名稱和應用程序名稱的Qt設置實例不起作用。QSettings實例失敗

這裏是mainwindow.h,還有一個main.cpp和mainwindow.cpp,一個.pro文件,.ui文件,但它們都是完全通用的,因爲我做了一個新的qwidgets項目來查看問題是什麼。

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QSettings> 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 
    QSettings these_settings("MySoft","StarRunner"); 
private: 
    Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 

我所做的只是添加了一行代碼,QSettings these_settings("MySoft","StarRunner");

此頁面,http://doc.qt.io/qt-5/qsettings.html#QSettings顯示我正在創建的實例類型。

錯誤是:

字符串之前預期標識符常數, '' 或 '...'。

+0

QSettings these_settings = QSettings( 「MySoft」, 「StarRunner」);導致有關'macro Q_DISABLE_COPY'的消息 –

回答

1

您是否啓用了C++ 11?如果你像這樣初始化字段,這是必需的。
同樣在此應用大括號不括號來完成:

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

private: 
    QSettings these_settings { "MySoft","StarRunner" }; 

private: 
    Ui::MainWindow *ui; 
}; 
+0

你確定要使用大括號嗎?在鏈接上顯示括號。但我會嘗試你的建議 –

+0

感謝那 –

+0

爲什麼要用大括號,順便說一句? –