2015-05-18 32 views
1

我已經使用Qt 5.4構建了iOS 8.2應用程序。我想在設置應用中添加一個用戶輸入字段,就像很多其他應用一樣,但我無法弄清楚如何去做。我嘗試了以下(不工作):使用Qt 5.4添加iOS設置條目

int main(int argc, char *argv[]) 
{ 
    QGuiApplication app(argc, argv); 

    TDA::TapDisplaySingleton* mainClass = 
    new TDA::TapDisplaySingleton(&app); 

    QObject::connect(&app, SIGNAL(aboutToQuit()), 
       mainClass, SLOT(aboutToQuitApp())); 

    QGuiApplication::setOrganizationName("NASA Langley"); 
    QGuiApplication::setOrganizationDomain("larc.nasa.gov"); 
    QGuiApplication::setApplicationName("TAP Display"); 

    QSettings settings; 
    settings.setValue("HOSTNAME", "localhost"); 

    QTimer::singleShot(10, mainClass, SLOT(run())); 

    return app.exec(); 
} 

當我火的應用程式上的模擬器,打開設置應用,我的條目不會出現。有誰知道如何在使用Qt的iOS中有效地做到這一點?

回答

1

事實證明,Qt確實提供了一種爲您的應用程序生成Settings.bundle文件的方法。你需要預先定義一個Root.plist和Root.strings文件,然後將以下添加到您的.pro文件:

SETTINGS_BUNDLE_DATA_ROOT.files += Root.plist 
SETTINGS_BUNDLE_DATA_ROOT.path = Settings.bundle 
SETTINGS_BUNDLE_DATA_LANG.files += Root.strings 
SETTINGS_BUNDLE_DATA_LANG.path = Settings.bundle/en.lproj 
QMAKE_BUNDLE_DATA += SETTINGS_BUNDLE_DATA_ROOT SETTINGS_BUNDLE_DATA_LANG 

當項目鏈接,該束將被創建。

0

QSettings僅用於以持久方式存儲設置。將設置添加到iOS設置應用程序不在Qt的範圍之內。查找「iOS設置包」以獲取有關如何創建這些的信息 - 例如https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html

+0

謝謝哈米什。在我看來,如果Qt會聲稱是一個獨立於平臺的應用程序平臺,那麼他們也需要抽象這個函數。由於我使用qmake生成xCode項目文件,並且不會將結果文件放在源代碼控制之下,因此不得不使用每個生成編輯項目都不夠。 –