2017-10-11 6 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"); '매크로 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

중괄호는 확실합니까? 링크에서 괄호를 보여줍니다. 하지만 나는 ur 제안을 시도해 볼 것입니다 –

+0

고마워요 –

+0

왜 중괄호, btw로해야합니까? –